教你七步優化數據庫

  用戶如今不只須要更復雜和靈活的分析,還須要更及時的信息——數據必須全天候可用,而且在許多業務中用戶要求在事件發生的幾小時內(在某些狀況下,幾分鐘甚至幾秒)內能夠訪問支持決策的數據。公司還意識到,許多不一樣的流程須要使用相同的數據,所以須要使用不一樣的配置文件。前端

  理想狀況下,公司應在功能中立的數據模型中以儘量小的形式保留詳細數據,這可讓商業公司能夠從普遍的觀點和流程中提出任意數量的問題。基本前提是:始終能夠聚合明細數據,但永遠不能分解摘要數據。這並不意味着你永遠不該使用摘要表;相反,它意味着您不該僅用摘要數據替換明細數據。數據庫

  若是所需分析須要明細數據,則不管技術如何,僅使用摘要表將會失敗。實施者和用戶必須共同努力,以瞭解業務需求及其驅動因素;而後他們須要使用最低侵入性的過程來知足這些要求。安全

  構建摘要表,添加索引,強制執行優先級和非規範化數據的主要緣由是提升性能。若是您可使用任意數量的數據來提出任何問題,並得到即時響應,那麼您將永遠不須要構建摘要或索引。併發

  這些結構能夠做爲其餘限制狀況的解決方法。它們的存在須要更多的空間、數據管理以及事件發生和採起有效行動之間的時間。問題是:如何在提升性能、最小化數據複製和數據管理之間取得平衡。框架

  

  優化的七個步驟函數

  1、從中性數據模型開始,該模型被規範化而且不特定於任何函數或組工具

  提供支持業務目標所需的最低級別的詳細信息性能

  經過定義的詳細程度解決將來需求優化

  使用定義詳細信息表的視圖以得到安全性和併發性cdn

  啓用訪問視圖,容許對正在更新的表進行選擇(無心圖讀取)以免鎖定問題

  2、實現視圖以簡化導航

  幫助工具使用第三方工具和操做視圖以建立更好的結構化查詢語言(SQL)

  提供前端工具可能須要的結構,以建立優化的SQL並消除對前端工具的依賴,瞭解市場上的每一個數據庫

  在視圖中嵌入優化的鏈接技術

  爲表格集成一層安全性

  爲每一個業務部門提供其本身的邏輯功能化-以用戶但願看到的方式呈現數據

  容許數據存儲一次,而後經過視圖轉換,減小數據冗餘,確保一致性並簡化數據管理

  3、添加索引,範圍從簡單的技術(如二級索引)到複雜的結構(如覆蓋索引,鏈接索引或聚合索引)

  提供一個主要優勢,由於系統與基礎數據表在同時維護它們

  爲索引附加一些開銷,所以要知道影響和權衡,並在成本與收益分析中識別它們

  4、使用數據庫優先級框架強制肯定優先級,以便在必要時使用資源保護關鍵的工做負載

  優化SQL後,優化索引和視圖結構

  提供更佳的可用容量使用,但不能提供更多容量

  提供對工做負載的更好理解

  系統擁擠時吸引人注意;在擁擠時代,要有優先級

  讓商業公司提供優先方向

  5、只有當對更高性能的需求超過度析靈活性時,才進行理性總結和非規範化

  遵循共存而非替換的策略,保留詳細信息表以進行擴展分析,同時添加非規範化結構

  知足多種需求,能夠爲各類用戶和部門提供服務,證實管理成本合理

  知足用戶社區的更大利益而不要堅持功能目的

  數據量和波動率的結果在成本效益分析中起着重要做用

  6、考慮「非理性」摘要和非規範化來定製特定業務流程或報告的數據模型

  當指望的性能超過靈活分析的需求時,須要結構來解決單個功能時

  在考慮成本效益分析時,包括更高的數據管理和資源成本

  經過維護基礎細節數據來最小化影響;當條件在將來發生變化時,這種不合理的結構能夠在幾乎沒有影響的狀況下消除

  若是您尚未達到預期的性能,那麼還有一個步驟。可是,它的成本相對較高。所以,在繼續以前,請確保預期的業務價值將超過使提取的數據與明細數據保持一致所需的額外數據移動和管理的成本。

  7、探索,擴展和導出

  探索答案集的業務使用狀況,並驗證業務成果的變化是否會推進預期的收入增加或成本下降,具體取決於應用程序。企業用戶是否願意支持這些指望,而且加強的性能是否可以證實成本合理?

  展開當前平臺。性能要求是否相當重要,以確保新容量?

  將數據從主數據倉庫導出到特定於應用程序的平臺。在這種狀況下,專門針對其應用調整的專用環境將提供對單個應用程序的更多控制。請記住重複數據的全部成本,增長時間延遲,以及須要管理和支持的新平臺、軟件環境的成本。

  反證以上步驟

  採起這七個步驟須要瞭解每一個步驟所涉及的成本以及這樣作帶來的好處。它還須要作出支持長期和短時間需求的決策。在某些狀況下,您能夠建立摘要表或添加後來會丟棄的非規範化數據模型。只要丟棄表不會致使中斷或大量應用程序更改,這是能夠接受的。確保這一點的一種方法是儘量避免使用匯總或非規範化表做爲更多下游應用程序的輸入。

  在應用這七個步驟時,對每一個提議的步驟執行成本效益分析,包括物理方面,例如磁盤空間,管理結構的資源以及因爲時間延遲而致使維護機會丟失。

  能夠從下面幾處考慮改進:

  查詢性能和響應速度

  用戶併發率

  吞吐量

  用戶滿意度和生產力

  利用第三方工具

  用於執行查詢的資源消耗

相關文章
相關標籤/搜索