サブクエリの最適化
TDV はサブクエリを分析し、このサブクエリの最適化の要件を満たしている場合、それらを Join として書き換えることができます。多くの場合、Join を使用すると、相関サブクエリに対して、パフォーマンスが向上します。
要件
|
•
|
サブクエリは IN または = で始まります。 |
|
•
|
サブクエリは「=」で始まり、アグリゲートが含まれます。 |
|
•
|
サブクエリには、COLUMN、LITERAL、FUNCTION、または AGGREGATE FUNCTION のいずれかのタイプから選択できるものを 1 つだけ含めることができます。 |
|
•
|
サブクエリには、SELECT、DISTINCT、AGGREGATE、FROM、RELATION、および WHERE を含めることができます。 |
|
•
|
サブクエリでの相互関係は、この機能の WHERE 句でのみ発生します。相互関係が他の場所で発生した場合、Join への書き換えは発生しません。 |
|
•
|
タイプ SELECT、DISTINCT、AGGREGATE、FROM、および WHERE 句のサブクエリオペレーター。または、サブクエリに、HAVING 句と相互に関連する述語を持つ WHERE 句が含まれています。 |
|
•
|
サブクエリの WHERE 句では、相互に関連する述語のみがサポートされます。 |
|
•
|
クエリ内の相互に関連するカラムは、親から直接取得する必要があります。祖父母レベルのカラムはサポートされていません。 |
|
•
|
タイプの不一致は、サブクエリを書き換えの対象外にします。 |
サブクエリの最適化を有効にするには
|
1.
|
Studio で、[管理] > [構成] に移動します。 |
|
2.
|
[サーバー] > [SQL エンジン] > [最適化] を展開します。 |
|
3.
|
[ジョインとしてサブクエリ中にリライト] 構成パラメーターを見つけます。 |
|
5.
|
[ジョインとしてサブクエリ中にリライト中い Semijoin を使用] 構成パラメーターを見つけます。 |
|
6.
|
構成パラメーターの値を確認し、変更するかどうかを決定してください。 |
パラメーターの変更はすぐに有効になります。構成パラメーターの変更後に処理を開始するすべてのクエリは分析され、最適化を利用できるかどうかが確認されます。サーバーを再起動する必要はありません。