Teradata - 效能調優



本章討論Teradata中效能調優的過程。

EXPLAIN

效能調優的第一步是在您的查詢中使用EXPLAIN。EXPLAIN計劃詳細說明了最佳化器將如何執行您的查詢。在EXPLAIN計劃中,檢查諸如置信度級別、使用的連線策略、臨時檔案大小、重新分配等關鍵詞。

收集統計資訊

最佳化器使用資料統計資訊來制定有效的執行策略。COLLECT STATISTICS命令用於收集表的統計資訊。確保收集的列的統計資訊是最新的。

  • 收集在WHERE子句中使用的列以及在連線條件中使用的列的統計資訊。

  • 收集唯一主鍵列的統計資訊。

  • 收集非唯一二級索引列的統計資訊。最佳化器將決定是否可以使用NUSI或全表掃描。

  • 雖然收集了基表的統計資訊,但也要收集連線索引的統計資訊。

  • 收集分割槽列的統計資訊。

資料型別

確保使用了正確的資料型別。這將避免使用超過所需儲存空間。

轉換

確保在連線條件中使用的列的資料型別相容,以避免顯式資料轉換。

排序

除非需要,否則刪除不必要的ORDER BY子句。

臨時空間問題

如果查詢超過該使用者的每個AMP臨時空間限制,則會生成臨時空間錯誤。驗證EXPLAIN計劃並確定消耗更多臨時空間的步驟。這些中間查詢可以拆分並分別放入以構建臨時表。

主索引

確保為表正確定義了主索引。主索引列應均勻分佈資料,並且應經常用於訪問資料。

SET表

如果定義SET表,則最佳化器將檢查是否為插入的每個記錄都重複了記錄。要刪除重複檢查條件,可以為表定義唯一二級索引。

更新大型表

更新大型表將非常耗時。與其更新表,不如刪除記錄並插入包含修改行的記錄。

刪除臨時表

如果不再需要臨時表(暫存表)和易失表,則將其刪除。這將釋放永久空間和臨時空間。

MULTISET表

如果您確定輸入記錄不會有重複記錄,則可以將目標表定義為MULTISET表,以避免SET表使用的重複行檢查。

廣告
© . All rights reserved.