増分計画および実行(IPE)は、小規模な増分リクエスト フラグメントでクエリー リクエストを計画および実行するためのフレームワークです。結果フィードバックと呼ばれるスプール データ、または統計フィードバックと呼ばれるスプールデータに関する統計は、フラグメントの実行中に動的に収集され、残りのフラグメントの計画を決定するために、Teradata問合わせ最適化ルーチンによって使用されます。結果フィードバックにより、Teradata問合わせ最適化ルーチンは、パーティション排除、結合排除、結合インデックスのリライト、述部の簡略化などの高度な問合わせ最適化を適用できます。最適化ルーチンは、統計フィードバックを使用して、正確なコスト見積もりを提供します。このリリースでは、IPEは、効率を高めるために動的フィードバックに拡張機能を追加します。
利点
このリリースのIPEには、次の強化機能が含まれています。
- スプールからの統計フィードバックによって、集約ステップまたは分析関数ステップへの入力データが提供されます。最適化ルーチンはフィードバックを使用して、これらのステップに最適な計画を策定。
- テーブル演算子のほか、マテリアライズド ビュー、派生テーブル、サブクエリーからの統計フィードバック。最適化ルーチンはこのフィードバックを使用して、ビュー、派生テーブル、サブクエリーとの結合に最適な計画を選択。
- サンプルからの動的な統計情報収集。サンプルのサイズ(サンプルの行数)を、基礎データの特性に基づいて動的に決定。サンプリングベースの統計情報収集により、スプールの統計情報収集に使われるシステム リソースの量を最小化。
- 結果フィードバックにより、パーティション排除、新しいアクセス パスの選択、結合インデックスの書き換えなどの簡素化と最適化を実現して、クエリーのパフォーマンスを向上。結果フィードバックは、さらに次の場合に提供されます。
- WHERE句に非相関EXISTSまたはNOT EXISTSサブクエリーがある。
- WHERE句に非相関単一列のIN、NOT IN、ANY、またはALLサブクエリーがある。
- 単一行スプール: 結果が1行になることが決定される派生テーブルまたはビュー。
- 最適化ルーチンによって要求されたフィードバックのタイプに関係なく、AMPが実際の実行と結果サイズに基づいてフィードバックのタイプを選択する動的フィードバックタイプの切り替え。結果フィードバックから統計フィードバックへの切り替えにより、最適化ルーチンへの処理負荷が減って、解析時間が最小限に短縮されます。ターゲット スプールが空の場合、または1行しか含まれていない場合、統計フィードバックから結果フィードバックへの切り替えにより、複雑なクエリーが結果フィードバックを有効に活用することができます。
- 旧式のスプールを自動的に検出して削除する拡張リリース スプール ロジック。スプールが後続のフラグメントによって将来使用されるために残されている場合、スプールは古くなり、クエリー リライトの後に不要になります。リリース スプール ロジックは、クエリー実行の完了後にスプールが残ってしまうことを防ぎ、クエリー処理時のピーク スプール使用量を削減します。
考慮事項
- IPEはデフォルトで有効になっています。
- 最適化ルーチンはさまざまな基準を使用して、動的計画をいつ生成するかを自動的に決定します。
- クエリー バンドを使用して、最適化ルーチンが動的計画を使用するタイミングを示すことができます。
- 再帰的クエリーはIPEの対象にはなりません。
- 複文リクエストはIPEの対象にはなりません。これには、ユーザーが指定したか、トリガーなど内部生成された複文リクエストが含まれます。
- 拡張IPEは、エンタープライズ ライセンス層で利用可能です。
追加情報
以下を参照してください。
- Teradata Vantage™ SQLデータ操作言語、B035-1146
- Teradata Vantage™ SQLリクエストおよびトランザクション処理、B035-1142