Teradata-performance-tuning

提供:Dev Guides
移動先:案内検索

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

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

説明する

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

統計を収集する

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

  • WHERE句で使用される列と、結合条件で使用される列の統計を収集します。
  • Unique Primary Index列の統計を収集します。
  • Non Unique Secondary Index列の統計を収集します。 オプティマイザーは、NUSIまたは全表スキャンを使用できるかどうかを決定します。
  • 基本テーブルの統計は収集されますが、結合インデックスの統計を収集します。
  • パーティション化列の統計を収集します。

データ型

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

変換

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

Sort

不要な場合は、不要なORDER BY句を削除してください。

スプールスペースの問題

クエリがそのユーザーのAMPスプールスペース制限ごとに超過すると、スプールスペースエラーが生成されます。 EXPLAIN PLANを確認し、より多くのスプール領域を消費するステップを特定します。 これらの中間クエリを分割して個別に配置し、一時テーブルを構築できます。

一次インデックス

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

SETテーブル

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

大きなテーブルの更新

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

一時テーブルの削除

一時テーブル(ステージングテーブル)とvolatileが不要になったら削除します。 これにより、永続的なスペースとスプールスペースが解放されます。

MULTISETテーブル

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