17.00 - 17.05 - クエリー リライト - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLリクエストおよびトランザクション処理

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
ユーザー ガイド
Publication ID
B035-1142-170K-JPN
Language
日本語 (日本)

クエリー リライトについて

Teradataシステムでは、クエリー リライトは構文解析プログラムのクエリー リライト サブシステムでほとんど実行されます。ただし、一部のクエリー リライトは、後のフェーズで実行されます。クエリー リライト サブシステムは、クエリーを最適化する直前に構文解析プログラムによって呼び出されるため、クエリー最適化プロセスで実行される最適化の最初のフェーズです。

クエリー リライトの機能

概説すると、クエリー リライトは、次に示す条件を満たすように、問合わせQを問合わせQ’に書き換えるプロセスです。
  • 問合わせQおよび問合わせQ’で同じ応答セットを生成する。
  • 問合わせQ’は問合わせQより速く実行される(つまり、さらに低コストになる)。

さまざまなクエリー リライト技法は、ルール ベース(述部の移動など)またはコスト ベース(結合インデックスの置換など)のいずれかにできます。

クエリー生成ツールが生成するSQLクエリーの多くは、特定のターゲットSQLプロセッサに最適で効率的なコードが作成されていません。そのため、クエリー リライトがさらに重要になってきています。ごく単純なSQLリクエストでも、数多くの異なる方法で記述することができます。

次の口頭表現によるクエリーを考えてください。「P2を提供するサプライヤーの名前を取得する」。ANSI SQL-92バージョンの言語で使用可能な機能を使用すると、このクエリーは少なくとも52種類の異なる方法で表現できます(応答セットを返すプロセスでシステムが2つのテーブルにアクセスする必要があることが前提)。この例は、口頭表現によるクエリーをSQLリクエストとして書き込むことができる方法の数を示しているに過ぎません。これらの52個のSQLクエリーの内部再作成の数は含まれていません。