本章討論Teradata中性能調整的過程。
解釋
性能調整的第一步是在查詢中使用EXPLAIN。 EXPLAIN計劃提供優化程序如何執行查詢的詳細信息。在解釋計劃中,檢查關鍵字,如置信度級別,使用的連接策略,假脫機文件大小,重新分配等。
收集統計數據
優化程序使用數據受衆特徵來制定有效的執行策略。 COLLECT STATISTICS命令用於收集表的數據人口統計。確保在列上收集的統計數據是最新的。
收集在WHERE子句中使用的列以及在連接條件中使用的列上的統計信息。
收集唯一主索引列的統計信息。
收集非唯一二級索引列的統計信息。優化器將決定是否可以使用NUSI或全表掃描。
收集關於聯接索引的統計信息,儘管收集了基表上的統計信息。
收集分區列上的統計信息。
Data Types
確保使用正確的數據類型。這將避免使用超過所需的過量存儲。
Conversion
確保連接條件中使用的列的數據類型兼容,以避免顯式數據轉換。
Sort
刪除不必要的ORDER BY子句,除非必需。
Spool Space Issue
如果查詢超過該用戶的每個AMP卷軸空間限制,則會生成假脫機空間錯誤。 驗證解釋計劃並識別佔用更多假脫機空間的步驟。 這些中間查詢可以拆分並單獨放置以構建臨時表。
Primary Index
確保爲表正確定義了主索引。主索引列應均勻分佈數據,應經常用於訪問數據。
SET Table
如果定義了SET表,那麼優化器將檢查記錄是否與插入的每個記錄重複。要刪除重複檢查條件,可以爲表定義唯一輔助索引。
UPDATE on Large Table
更新大表將是耗時的。您可以刪除記錄,並插入帶有修改行的記錄,而不是更新表。
Dropping Temporary Tables
刪除臨時表(臨時表)和揮發性(如果不再需要它們)。這將釋放永久空間和假脫機空間。
MULTISET Table
如果確定輸入記錄不具有重複記錄,則可以將目標表定義爲MULTISET表,以避免SET表使用重複行檢查。