セミジョイン構成パラメーターの設定
これらのサーバー構成パラメーターでは、どのようなクエリーがTDVクエリーエンジンによって半結合最適化の恩恵を受けられると見なされるかを制御します。
潜在的なセミジョインの両側のカーディナリティが評価され、推定されたカーディナリティが小さい側が LHS としてメモリにロードされます。カーディナリティが十分に小さい場合、LHS からのジョイン条件のすべての値を含む 1 つの IN 句または OR 式が作成され、RHS に送信される SQL に追加されます。
セミジョインは、ベンダーが SQL ステートメントまたは IN/OR 句の大きさを制限しているデータベースに対して制限されています。カーディナリティが、IN 句または OR 式のサイズに関する特定のデータ ソース制限を超える場合、クエリ エンジンは、パーティション セミジョインを試行する実行プランを作成します。パーティションは、IN リストを 100 個以下の一意の値のチャンクに分割し、RHS ソースに対して複数のクエリを実行します。カーディナリティがまだ大きすぎる場合、システムは HASH アルゴリズムを使用します。
LHS が過度に結合に負担をかけないようにするために、別の制限が設定されています。 LHS カーディナリティを構成して、自動セミジョインをトリガーする行数を決定できます。
たとえば、[Max Source Side Cardinality Estimate(最大ソース側カーディナリティ推定)]が200で、[Ratio(比率)]が10の場合、ソースの推定カーディナリティが50、ターゲットの推定カーディナリティが600のクエリーは半結合の使用を自動的にトリガーし、ソースの推定カーディナリティが100、ターゲットの推定カーディナリティが900のクエリーは自動半結合をトリガーしません。
TDVクエリーエンジンは、ソース側を推定できるものの、ターゲット側を推定できない場合には、ターゲット側のカーディナリティが大きいと想定し、[Max Source Side Cardinality Estimate(ソース側カーディナリティの推定最大値)]の値を使用して半結合を設定します。
Studioを使用して半結合パラメーターを設定するには
| 1. | Studio の [管理] メニューの [構成] オプションを開きます。 |
| 2. | 必要に応じて、次のセミジョイン サーバー構成パラメーターの値を変更します。 |
|
パラメーター |
説明 |
|
[Max Source Side Cardinality Estimate (ソース側カーディナリティの最大推定値) ] |
ソース側で生成される述語のサイズに上限を設定します。カーディナリティの推定値がこの設定よりも大きい場合、TDVクエリーエンジンは半結合を自動的に選択しません。 |
|
自動半結合をトリガーするためのターゲットの最小カーディナリティを導き出します。 たとえば、ソース側の推定値が50で、比率が12に設定されている場合、半結合最適化の使用をトリガーするには、ターゲット側の推定値が600行以上でなければなりません。ターゲットのカーディナリティが指定されていない場合、ターゲットのカーディナリティは非常に大きいと想定されます。 |
| 3. | 変更を保存します。 |
| 4. | TDV Server を再起動します。 |