Teradata-パフォーマンスチューニング

この章では、Teradataでのパフォーマンスチューニングの手順について説明します。

説明する

パフォーマンス調整の最初のステップは、クエリでEXPLAINを使用することです。EXPLAINプランは、オプティマイザーがクエリを実行する方法の詳細を提供します。Explainプランで、信頼水準、使用された結合戦略、スプールファイルサイズ、再配布などのキーワードを確認します。

統計を収集する

オプティマイザーは、データ人口統計を使用して、効果的な実行戦略を考案します。COLLECT STATISTICSコマンドは、テーブルのデータ人口統計を収集するために使用されます。列で収集された統計が最新であることを確認してください。

  • WHERE句で使用される列と結合条件で使用される列の統計を収集します。

  • 一意のプライマリインデックス列の統計を収集します。

  • 非一意のセカンダリインデックス列の統計を収集します。オプティマイザーは、NUSIまたは全表スキャンを使用できるかどうかを決定します。

  • ベーステーブルの統計は収集されますが、結合インデックスの統計を収集します。

  • パーティショニング列の統計を収集します。

データ型

適切なデータ型が使用されていることを確認してください。これにより、必要以上のストレージの使用を回避できます。

変換

明示的なデータ変換を回避するために、結合条件で使用される列のデータ型に互換性があることを確認してください。

ソート

必要な場合を除いて、不要なORDERBY句を削除します。

スプールスペースの問題

クエリがそのユーザーのAMPスプールスペース制限を超えると、スプールスペースエラーが生成されます。説明プランを確認し、より多くのスプールスペースを消費するステップを特定します。これらの中間クエリは、一時テーブルを作成するために分割して個別に配置できます。

プライマリインデックス

プライマリインデックスがテーブルに対して正しく定義されていることを確認してください。プライマリインデックス列はデータを均等に分散する必要があり、データにアクセスするために頻繁に使用する必要があります。

SETテーブル

SETテーブルを定義すると、オプティマイザは、挿入されたすべてのレコードについてレコードが重複しているかどうかを確認します。重複するチェック条件を削除するには、テーブルに一意のセカンダリインデックスを定義します。

大きなテーブルの更新

大きなテーブルの更新には時間がかかります。テーブルを更新する代わりに、レコードを削除して、変更された行を持つレコードを挿入できます。

一時テーブルの削除

一時テーブル(ステージングテーブル)と揮発性物質が不要になった場合は、それらを削除します。これにより、永続スペースとスプールスペースが解放されます。

MULTISETテーブル

入力レコードに重複レコードがないことが確実な場合は、ターゲットテーブルをMULTISETテーブルとして定義して、SETテーブルで使用される重複行チェックを回避できます。