再帰的問合わせは、組織構成、原料目録、および文書階層などの、データの階層を問合わせる方法です。
再帰的処理は、一般的には次の3つのステップに分類できます。
- 初期化
- 各階層に対するロジックの繰返し(再帰処理)
- 終了
同様に、再帰的問合わせには次の3つの実行段階があります。
- 最初の結果セット
- 既存の結果セットに基づく反復処理
- 最後の結果セットを返すための最終問合わせ
再帰的問合わせの指定方法
再帰的問合わせは、以下の方法で指定できます。
- 問合わせの前にWITH RECURSIVE句を追加する。
- CREATE VIEW文にRECURSIVE句を使用してビューを作成する。
再帰的問合わせの機能の詳細、およびその使用方法と制限を示す例は、<Teradata Vantage™ SQL基礎、B035-1141>を参照してください。
WITH RECURSIVE句の詳細については、WITH修飾子を参照してください。
再帰ビューの詳細については、<Teradata Vantage™ SQLデータ定義言語 - 詳細トピック、B035-1184>を参照してください。
再帰的問合わせパフォーマンスの考慮事項
次に、再帰的問合わせのパフォーマンスの影響に関する一般的な指針を示します。
- 再帰的問合わせを使用した場合、ストアド プロシージャと一緒に一時テーブルを使用した場合に比べて明らかにパフォーマンスが向上する。多くの場合、大幅に向上する。
- WITH RECURSIVE句を使用した場合は、基本的にRECURSIVE VIEWを使用した場合と同じか同等のパフォーマンスとなる。
- 再帰的問合わせを使用する場合は、基礎データでサイクルがあるとき、無限の再帰処理を回避するため、再帰処理に深度制限を設けることが重要。