
データベースデータを処理するときに、SAP Data Services はデータベースエンジンの能力を活用できます。これは、パフォーマンス上の理由から非常に重要な場合があります。適用されるメカニズムは SQL プッシュダウンと呼ばれます。変換の一部は、生成された SQL 文の形式でデータベースに "プッシュダウン" されます。多くの場合、データベースではより高速にデータを処理することができます。データベースレイヤ内の内部処理により、データベースサーバメモリと Data Services メモリ間での時間のかかるデータ転送が回避または大幅に削減されます (その逆も同様)。
Data Services は、データベースにプッシュダウンする操作を決定する際に、データベースとその環境を検証します。プッシュダウン操作には、以下の 2 つのタイプがあります。
- フル: すべてのトランスフォーム操作をデータベースサーバにプッシュダウンし、データストリームをソースデータベースからターゲットデータベースに直接プッシュダウンします。
- 部分: SELECT 文をソースデータベースサーバにプッシュダウンします。
完全なプッシュダウン操作
Data Services オプティマイザでは、常に完全なプッシュダウン操作が試行されます。完全プッシュダウン操作は、データベースとデータストリームにソースデータベースからターゲットデータベースに直接プッシュダウンすることができます。
たとえば、Data Services は SQL INSERT INTO...SELECT 文がターゲットデータベースに送信され、SELECT 文によってソースからデータが取得されます。
完全プッシュダウン条件
ソースおよびターゲットデータベースへの完全なプッシュダウン操作は、以下の条件が満たされている場合にのみ実行できます。
- ソーステーブルとターゲットテーブル間のすべての操作をプッシュダウンできます。
- ソースおよびターゲットテーブルは、同じデータストアからであるか、またはそれらのテーブル間で定義されたデータベースリンクを持つデータストア内にあります。
部分プッシュダウン操作
完全プッシュダウン操作が不可能な場合、Data Services は SELECT 文を使用した部分的なプッシュダウンをソースデータベースにプッシュダウンしようとします。
プッシュダウン可能な SELECT 文の操作
次の表に、データベースにプッシュできる SELECT 文内の操作を示します。
| 操作 | 内容説明 |
|---|---|
| 集約 | GROUP BY 文とともに使用して、元のデータセットより小さいか、同じサイズのデータセットを生成します。 |
| 一意の行 | Data Services では、一意の行を使用する場合にのみ一意の行が出力されます。 |
| フィルタ | 元のデータセット以下のデータセットを生成します。 |
| 結合 | 元のテーブルのサイズ以下のデータセットを生成します。 |
| 発注 | 順序付けはデータセットのサイズに影響しません。Data Services では、メモリに収まるデータセットを効率的に並べ替えることができます。Data Services では、中間結果をディスクに書き出すことによってページングが実行されないため、DBMS 自体を使用して大きなデータセットを並べ替えます。 |
| 射影 | データフローによって参照される列のみを返すため、より小さなデータセットを生成します。 |
| 機能 | 基礎となるデータベースに同等の Data Services 関数のほとんどは、適切に変換されます。 |
プッシュダウンできない作業
Data Services では、次のようなトランスフォーム操作をデータベースにプッシュできません。
- データベース通信先のない Data Services 関数を含む式。
- トリガを含むロード操作。
- Query トランスフォーム以外のトランスフォーム。
- 異なるデータベースサーバ上にあるソース間のジョイン (データベースリンクの定義なし)。
注記

