ユーザーガイド > データシップパフォーマンスの最適化 > データシップについて
 
データシップについて
データシップの最適化は、フェデレーションクエリーをローカルで実行されるSQL操作に変換することで、効率的なフェデレーションクエリーの実行を実現します。SQL操作に非常に大きなテーブル(数百万または数十万の行)とそれよりも行数が大幅に少ない小さなテーブル含まれる場合、TDV Serverは小さなテーブルのコピーを大きなテーブルのデータソースに送信することで、クエリーのパフォーマンスを向上できます。この最適化により、従来のフェデレーションクエリーよりも大幅に高速に結果を取得できます。
次のSQL演算子では、データシップの最適化を利用できます。
JOIN
UNION
INTERSECT
EXCEPT
データシップの最適化が有効になっている場合、TDVクエリーエンジンは、明示的に定義されたクエリーオプションをヒントを含んでいる可能性があるクエリーを、クエリーの依存関係に関して収集された関連するすべてのデータソース統計情報を使用して評価し、データシップの最適化を使用することで最適なパフォーマンスが得られるかどうかを判断します。データシップの最適化により、分析と設定に従って実行時間が短縮される場合、クエリーを実行すると、データソース固有の命令が送信され、小さなテーブルがあるデータベースからターゲットデータソースの一時テーブルにテーブルのコピー(または実行の結果セット)が移動されます。クエリーの処理は、大きなソーステーブルがあるデータソースで行われます。フェデレーションクエリーの両側が単一のデータソースに存在するため、処理効率が高まり、結果セットがより高速に返されます。
クエリーがTDVに送信されると、TDVはそのクエリーを評価し、データシップの最適化を使用せずに実行プランを生成します。このプランは、データシップ前のプランです。TDVは、このプランのフェッチノードを調べ、データシップの最適化を使用するかどうかを判断します。データシップの最適化は、次の場合に使用されます。
フェッチノードに対応するデータソースでデータシップがサポートされている
クエリーヒントを使用するクエリーでデータシップが無効になっていない
データソースがデータシップのソースまたはターゲットとして構成されている
関連するすべてのノードの中で、TDVは1つのノードをターゲット専用として、それ以外のすべてのノードをソースとして使用します。TDVは、ターゲットデータソースに一時テーブルを作成し、その他のノードからこの一時テーブルにデータを移動します。以前のプランのフェデレーションSQL操作をターゲットデータソースに転送する代替クエリープランが生成されます。
ターゲットノードは、以下の条件に基づいて決定されます。
フェッチノードに対応するデータソースがソースまたはターゲットとして構成されている
データシップの下限および上限セットでデータを取得するコスト