資料倉庫 - 調優



資料倉庫不斷發展,使用者未來將提出什麼樣的查詢是不可預測的。因此,調整資料倉庫系統變得更加困難。本章將討論如何調整資料倉庫的不同方面,例如效能、資料載入、查詢等。

資料倉庫調優的困難

由於以下原因,調整資料倉庫是一個困難的過程:

  • 資料倉庫是動態的;它永遠不會保持不變。

  • 很難預測使用者未來將提出什麼查詢。

  • 業務需求會隨著時間而變化。

  • 使用者及其配置檔案不斷變化。

  • 使用者可以從一個組切換到另一個組。

  • 倉庫上的資料負載也會隨著時間而變化。

注意 - 掌握資料倉庫的完整知識非常重要。

效能評估

以下是效能目標衡量指標的列表:

  • 平均查詢響應時間
  • 掃描速率
  • 每天查詢所用時間
  • 每個程序的記憶體使用量
  • I/O 吞吐率

以下是需要記住的幾點。

  • 有必要在服務等級協議 (SLA) 中指定這些指標。

  • 如果響應時間已經優於所需時間,則嘗試調整響應時間是沒有用的。

  • 進行效能評估時,必須有現實的期望。

  • 使用者也必須有切實可行的期望。

  • 為了向用戶隱藏系統的複雜性,應使用聚合和檢視。

  • 使用者也可能編寫您尚未調整的查詢。

資料載入調優

資料載入是隔夜處理的關鍵部分。在資料載入完成之前,其他任何操作都無法執行。這是進入系統的入口點。

注意 - 如果資料傳輸或資料到達延遲,則整個系統將受到嚴重影響。因此,首先調整資料載入非常重要。

下面討論了各種資料載入調優方法:

  • 最常見的方法是使用SQL 層插入資料。在這種方法中,需要執行正常的檢查和約束。當資料插入表中時,程式碼將執行以檢查是否有足夠的空位來插入資料。如果可用空間不足,則可能需要為這些表分配更多空間。這些檢查需要時間來執行,並且對 CPU 的消耗很大。

  • 第二種方法是繞過所有這些檢查和約束,並將資料直接放入預先格式化的塊中。這些塊隨後寫入資料庫。它比第一種方法更快,但只能與整個資料塊一起使用。這可能會導致一些空間浪費。

  • 第三種方法是在將資料載入到已經包含資料的表中時,我們可以維護索引。

  • 第四種方法是,要將資料載入到已經包含資料的表中,刪除索引並重新建立它們,當資料載入完成後。第三種方法和第四種方法的選擇取決於已經載入了多少資料以及需要重建多少索引。

完整性檢查

完整性檢查嚴重影響載入效能。以下是需要記住的幾點:

  • 需要限制完整性檢查,因為它們需要大量的處理能力。

  • 應在源系統上應用完整性檢查,以避免資料載入效能下降。

查詢調優

資料倉庫中有兩種查詢:

  • 固定查詢
  • 即席查詢

固定查詢

固定查詢是明確定義的。以下是固定查詢的示例:

  • 定期報告
  • 預定義查詢
  • 常用聚合

調整資料倉庫中的固定查詢與在關係資料庫系統中相同。唯一的區別在於要查詢的資料量可能不同。在測試固定查詢時,最好儲存最成功的執行計劃。儲存這些執行計劃將使我們能夠發現變化的資料大小和資料傾斜,因為它會導致執行計劃發生變化。

注意 - 我們無法對事實表做更多操作,但在處理維度表或聚合時,可以使用通常的 SQL 微調、儲存機制和訪問方法集合來調整這些查詢。

即席查詢

要了解即席查詢,重要的是要知道資料倉庫的即席使用者。對於每個使用者或使用者組,您需要了解以下內容:

  • 組中使用者的數量
  • 他們是否定期使用即席查詢
  • 他們是否經常使用即席查詢
  • 他們是否偶爾在未知的時間間隔內使用即席查詢。
  • 他們傾向於執行的最大查詢大小
  • 他們傾向於執行的平均查詢大小
  • 他們是否需要對基礎資料的鑽取訪問
  • 每天經過的登入時間
  • 每日使用高峰時間
  • 他們每小時高峰執行的查詢數量

需要注意的幾點

  • 跟蹤使用者配置檔案並識別定期執行的查詢非常重要。

  • 執行的調整不會影響效能也很重要。

  • 識別經常執行的類似和即席查詢。

  • 如果識別出這些查詢,則資料庫將更改,並且可以為這些查詢新增新的索引。

  • 如果識別出這些查詢,則可以專門為這些查詢建立新的聚合,這將導致其高效執行。

廣告
© . All rights reserved.