サブクエリの最適化

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. [ジョインとしてサブクエリ中にリライト] 構成パラメーターを見つけます。
4. 値を検証するか、true に変更します。
5. [ジョインとしてサブクエリ中にリライト中い Semijoin を使用] 構成パラメーターを見つけます。
6. 構成パラメーターの値を確認し、変更するかどうかを決定してください。
7. 値をそのままにするか、変更します。
8. [適用] または [OK] を選択します。

パラメーターの変更はすぐに有効になります。構成パラメーターの変更後に処理を開始するすべてのクエリは分析され、最適化を利用できるかどうかが確認されます。サーバーを再起動する必要はありません。