17.10 - 再帰的問合わせの使用 - 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
日本語 (日本)

再帰的問合わせは、組織構成、原料目録、および文書階層などの、データの階層を問合わせる方法です。

再帰的処理は、一般的には次の3つのステップに分類できます。
  • 初期化
  • 各階層に対するロジックの繰返し(再帰処理)
  • 終了
同様に、再帰的問合わせには次の3つの実行段階があります。
  • 最初の結果セット
  • 既存の結果セットに基づく反復処理
  • 最後の結果セットを返すための最終問合わせ

再帰的問合わせの指定方法

再帰的問合わせは、以下の方法で指定できます。
  • 問合わせの前にWITH RECURSIVE句を追加する。
  • CREATE VIEW文にRECURSIVE句を使用してビューを作成する。

再帰的問合わせの機能の詳細、およびその使用方法と制限を示す例は、<Teradata Vantage™ - SQLの基本、B035-1141>を参照してください。

WITH RECURSIVE句の詳細については、WITH修飾子を参照してください。

再帰ビューの詳細については、<Teradata Vantage™ - SQLデータ定義言語 - 詳細トピック、B035-1184>を参照してください。

再帰的問合わせパフォーマンスの考慮事項

次に、再帰的問合わせのパフォーマンスの影響に関する一般的な指針を示します。
  • 再帰的問合わせを使用した場合、ストアド プロシージャと一緒に一時テーブルを使用した場合に比べて明らかにパフォーマンスが向上する。多くの場合、大幅に向上する。
  • WITH RECURSIVE句を使用した場合は、基本的にRECURSIVE VIEWを使用した場合と同じか同等のパフォーマンスとなる。
  • 再帰的問合わせを使用する場合は、基礎データでサイクルがあるとき、無限の再帰処理を回避するため、再帰処理に深度制限を設けることが重要。