17.10 - 高速パスINSERT ... SELECTリクエスト - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1146-171K-JPN
Language
日本語 (日本)

複文INSERT ... SELECTは最適化されるため、最後のリクエストを除いたそれぞれのリクエストは、応答として「zero row inserted(挿入された行はありません)」のメッセージを返します。各SELECTで検索された行は、空の宛先テーブルに送られます。最後の INSERT ... SELECTリクエストは、リクエスト全体の挿入行の合計数を返し、宛先テーブルにスプール テーブルをソートおよびマージします。

COMPRESSオプションを指定して定義した列が、高速パスの最適化処理に加えられることはありません。そのため、圧縮列に対してINSERT ... SELECT操作を実行しても、最適化ルーチンはアクセス計画を作成するときに、高速パス最適化を指定することはありません。

INSERT ... SELECTパフォーマンスおよびターゲット テーブルの識別列プライマリ インデックス

挿入元のテーブルと宛先テーブルの構造が同じであるような場合に、挿入元のテーブルから宛先テーブルへの直接結合を可能にするためにINSERT ... SELECTが最適化される場合は、パフォーマンスが3倍も低下する可能性があります。これは、宛先テーブルに識別列プライマリ インデックスがある場合に、スプールを実行したり行を再分散させるために、余分のステップを実行する必要があるためです。

高速パスINSERT...SELECTリクエストのルール

高パフォーマンスの高速パスの最適化を複数文リクエストで実現するには、次の制限に従ってください。
  • 宛先テーブルは空でなければなりません。
  • 複文リクエスト内のINSERT文の宛先テーブルは、すべて同じでなければなりません。
  • リクエストには、INSERT文だけを含めることができます。

複文リクエストにその他のタイプの文を挿入すると、高速パスの最適化は行なわれず(一連のINSERT ... SELECT文の最初のものだけが最適化されます)、処理能力が低下します。