Teradata-パフォーマンスチューニング
この章では、Teradataでのパフォーマンスチューニングの手順について説明します。
説明する
パフォーマンス調整の最初のステップは、クエリでEXPLAINを使用することです。EXPLAINプランは、オプティマイザーがクエリを実行する方法の詳細を提供します。Explainプランで、信頼水準、使用された結合戦略、スプールファイルサイズ、再配布などのキーワードを確認します。
統計を収集する
オプティマイザーは、データ人口統計を使用して、効果的な実行戦略を考案します。COLLECT STATISTICSコマンドは、テーブルのデータ人口統計を収集するために使用されます。列で収集された統計が最新であることを確認してください。
WHERE句で使用される列と結合条件で使用される列の統計を収集します。
一意のプライマリインデックス列の統計を収集します。
非一意のセカンダリインデックス列の統計を収集します。オプティマイザーは、NUSIまたは全表スキャンを使用できるかどうかを決定します。
ベーステーブルの統計は収集されますが、結合インデックスの統計を収集します。
パーティショニング列の統計を収集します。
データ型
適切なデータ型が使用されていることを確認してください。これにより、必要以上のストレージの使用を回避できます。
変換
明示的なデータ変換を回避するために、結合条件で使用される列のデータ型に互換性があることを確認してください。
ソート
必要な場合を除いて、不要なORDERBY句を削除します。
スプールスペースの問題
クエリがそのユーザーのAMPスプールスペース制限を超えると、スプールスペースエラーが生成されます。説明プランを確認し、より多くのスプールスペースを消費するステップを特定します。これらの中間クエリは、一時テーブルを作成するために分割して個別に配置できます。
プライマリインデックス
プライマリインデックスがテーブルに対して正しく定義されていることを確認してください。プライマリインデックス列はデータを均等に分散する必要があり、データにアクセスするために頻繁に使用する必要があります。
SETテーブル
SETテーブルを定義すると、オプティマイザは、挿入されたすべてのレコードについてレコードが重複しているかどうかを確認します。重複するチェック条件を削除するには、テーブルに一意のセカンダリインデックスを定義します。
大きなテーブルの更新
大きなテーブルの更新には時間がかかります。テーブルを更新する代わりに、レコードを削除して、変更された行を持つレコードを挿入できます。
一時テーブルの削除
一時テーブル(ステージングテーブル)と揮発性物質が不要になった場合は、それらを削除します。これにより、永続スペースとスプールスペースが解放されます。
MULTISETテーブル
入力レコードに重複レコードがないことが確実な場合は、ターゲットテーブルをMULTISETテーブルとして定義して、SETテーブルで使用される重複行チェックを回避できます。