教你七步優化資料庫

資料星河發表於2018-09-28

  使用者現在不僅需要更復雜和靈活的分析,還需要更及時的資訊——資料必須全天候可用,並且在許多業務中使用者要求在事件發生的幾小時內(在某些情況下,幾分鐘甚至幾秒)內可以訪問支援決策的資料。公司還意識到,許多不同的流程需要使用相同的資料,因此需要使用不同的配置檔案。

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

  如果所需分析需要明細資料,則無論技術如何,僅使用摘要表將會失敗。實施者和使用者必須共同努力,以瞭解業務需求及其驅動因素;然後他們需要使用最低侵入性的過程來滿足這些要求。

  構建摘要表,新增索引,強制執行優先順序和非規範化資料的主要原因是提高效能。如果您可以使用任意數量的資料來提出任何問題,並獲得即時響應,那麼您將永遠不需要構建摘要或索引。

  這些結構可以作為其他限制情況的解決方法。它們的存在需要更多的空間、資料管理以及事件發生和採取有效行動之間的時間。問題是:如何在提高效能、最小化資料複製和資料管理之間取得平衡。

教你七步優化資料庫

  優化的七個步驟

  一、從中性資料模型開始,該模型被規範化並且不特定於任何函式或組

  l提供支援業務目標所需的最低階別的詳細資訊

  l通過定義的詳細程度解決未來需求

  l使用定義詳細資訊表的檢視以獲得安全性和併發性

  l啟用訪問檢視,允許對正在更新的表進行選擇(無意圖讀取)以避免鎖定問題

  二、實現檢視以簡化導航

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

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

  l在檢視中嵌入優化的連線技術

  l為表格整合一層安全性

  l為每個業務部門提供其自己的邏輯功能化-以使用者希望看到的方式呈現資料

  l允許資料儲存一次,然後通過檢視轉換,減少資料冗餘,確保一致性並簡化資料管理

  三、新增索引,範圍從簡單的技術(如二級索引)到複雜的結構(如覆蓋索引,連線索引或聚合索引)

  l提供一個主要優點,因為系統與基礎資料表在同時維護它們

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

  四、使用資料庫優先順序框架強制確定優先順序,以便在必要時使用資源保護關鍵的工作負載

  l優化SQL後,優化索引和檢視結構

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

  l提供對工作負載的更好理解

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

  l讓商業公司提供優先方向

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

  l遵循共存而非替換的策略,保留詳細資訊表以進行擴充套件分析,同時新增非規範化結構

  l滿足多種需求,可以為各種使用者和部門提供服務,證明管理成本合理

  l滿足使用者社群的更大利益而不要堅持功能目的

  l資料量和波動率的結果在成本效益分析中起著重要作用

  六、考慮“非理性”摘要和非規範化來定製特定業務流程或報告的資料模型

  l當期望的效能超過靈活分析的需求時,需要結構來解決單個功能時

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

  l通過維護基礎細節資料來最小化影響;當條件在未來發生變化時,這種不合理的結構可以在幾乎沒有影響的情況下消除

  如果您還沒有達到預期的效能,那麼還有一個步驟。但是,它的成本相對較高。因此,在繼續之前,請確保預期的業務價值將超過使提取的資料與明細資料保持一致所需的額外資料移動和管理的成本。

  七、探索,擴充套件和匯出

  l探索答案集的業務使用情況,並驗證業務成果的變化是否會推動預期的收入增長或成本降低,具體取決於應用程式。企業使用者是否願意支援這些期望,並且增強的效能是否能夠證明成本合理?

  l展開當前平臺。效能要求是否至關重要,以確保新容量?

  l將資料從主資料倉儲匯出到特定於應用程式的平臺。在這種情況下,專門針對其應用調整的專用環境將提供對單個應用程式的更多控制。請記住重複資料的所有成本,增加時間延遲,以及需要管理和支援的新平臺、軟體環境的成本。

  反證以上步驟

  採取這七個步驟需要了解每個步驟所涉及的成本以及這樣做帶來的好處。它還需要做出支援長期和短期需求的決策。在某些情況下,您可以建立摘要表或新增後來會丟棄的非規範化資料模型。只要丟棄表不會導致中斷或大量應用程式更改,這是可以接受的。確保這一點的一種方法是儘可能避免使用匯總或非規範化表作為更多下游應用程式的輸入。

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

  可以從下面幾處考慮改進:

  l查詢效能和響應速度

  l使用者併發率

  l吞吐量

  l使用者滿意度和生產力

  l利用第三方工具

  l用於執行查詢的資源消耗

相關文章