パフォーマンスの最適化

パフォーマンス向上のためのオプションの設定

Objective

After completing this lesson, you will be able to パフォーマンスを改善するためのオプションの設定

データキャッシュ

できるだけ多くのデータをキャッシュすることで、メモリで発生するデータ変換のパフォーマンスを向上させることができます。データをキャッシュすることで、システムがデータベースにアクセスする必要がある回数を制限します。キャッシュされたデータは、使用可能なメモリに収まる必要があります。

以下の表には、データフロー処理中にメモリにデータをキャッシュすることによるメリットがある操作が含まれています。

データキャッシングのメリットが得られる操作

操作内容説明
結合Data Services は外部ソースの行ごとに結合の内部ソースを読み込む必要があるため、ソースが結合の内部ソースとして使用されている場合は、ソースをキャッシュします。
テーブル比較Data Services ではソースの各行の比較テーブルを読み込む必要があるため、比較テーブルをキャッシュします。
ルックアップ参照テーブルがリモートデータベースに存在する場合は、アクセス時間を短縮するためにテーブルをメモリにキャッシュします。

結合のキャッシュ

Query トランスフォームの結合操作では、Query エディタで設定を変更しない限り、ソースからのキャッシュ設定が使用されます。

クエリエディタでは、キャッシュ設定はデフォルトで自動に設定されています。自動設定では、ソーステーブルからキャッシュ設定が繰り越されます。

以下の表は、ソースでのキャッシュ設定とクエリエディタのキャッシュ設定の関係、および結合の有効キャッシュ設定を示しています。

キャッシュ設定

ソースのキャッシュ設定クエリエディタのキャッシュ設定有効キャッシュ設定
Yes自動はい
いいえ自動いいえ
はいはいはい
いいえはいはい
はい一致なし一致なし
一致なし一致なしいいえ

注記

結合キャッシュの詳細については、パフォーマンスの最適化ガイド:

https://help.sap.com/docs/SAP_DATA_SERVICES/e54136ab6a4a43e6a370265bf0a2d744/5756b6256d6d1014b3fc9283b0e91070.html

データキャッシュタイプ

データフロー内の操作には、2 つの異なるタイプのキャッシュを使用できます。

  • インメモリ: データフローがメモリに収まる少量のデータを処理する場合に使用します。
  • ページング可能キャッシュ: メモリに収まらない大量のデータをデータフローで処理する場合に使用します。

管理者は、ページング可能キャッシュの場所を選択して、2 GB RAM の制限を超えるコンテンツを保存します。ページング可能キャッシュの場所はサーバマネージャで設定され、ページング可能キャッシュを使用するオプションがデータフローのプロパティダイアログボックスで選択されます。

永続キャッシュデータストアを作成するには、新規データストアの作成ダイアログボックスでデータベースタイプとして永続キャッシュを選択します。新たに作成された永続キャッシュデータストアがデータストアの一覧に表示され、ジョブのソースとして使用できます。

バルクロード

バルクロードは、優れたパフォーマンスで大量のデータをロードする必要がある場合に使用されます。バルクロードを使用する場合は、データを 1 行ずつ挿入するだけでなく、特定のデータベースの構造に基づいてより効率的な方法を使用します。

SAP Data Services では、サポートされているほとんどのデータベースでバルクロードがサポートされています。バルクロードでは、SQL 文を使用するのではなく、データをロードしたり、場合によってはデータを一括で読み込むことができます。

バルクロードの考慮事項

バルクロードとバルク読み込みを使用する場合の一般的な考慮事項を次に示します。

  • Data Services ターゲットテーブルエディタのオプションタブおよびバルクローダオプションタブで、バルクロードオプションを指定します。
  • ほとんどのデータベースではテンプレートテーブルを使用したバルクロードはサポートされていません。
  • バルクロードで使用できるオペレーションコードは、データベースによって異なります。これらのほとんどは、NORMAL および INSERT オペレーションコードをサポートしていますが、UPDATEDELETE をサポートしているのはその一部のみです。

注記

バルクロードのオプションの詳細については、以下を参照してください。

https://help.sap.com/docs/SAP_DATA_SERVICES/e54136ab6a4a43e6a370265bf0a2d744/575577326d6d1014b3fc9283b0e91070.html

結合ランキング

設定内の各結合に結合ランクを割り当てることで、Query トランスフォームの結合操作パフォーマンスを向上させることができます。

各結合をランク付けすると、

  • SAP Data Services では、データフローで結合された他のテーブルおよびファイルに対して相対的なランクが考慮されます。
  • オプティマイザは、Data Services エンジン内部の最適化アプリケーションであり、ランク値が低いソースを結合する前に、ランク値が高いソースを結合します。
  • 実行順序は、結合ランクと、左外部結合の場合は FROM 句で定義された順序に依存します。

結合の結合

オプティマイザは、データの結合方法を次のように基にします。

  • オプティマイザは、連続する Query トランスフォームの結合を 1 つの Query トランスフォームに結合し、結合ランクを再割り当てすることができます。
  • オプティマイザは、ジョインを行うときに、アップストリームのジョインランク設定を考慮できます。

プロセススライシング

また、データフローをサブデータフローに分割することで、プロセススライスによってジョブを最適化することもできます。

サブデータフロー

  • 小さなデータセットまたは少ないトランスフォーム (もしくはその両方) を処理するため、各プロセスで消費される仮想メモリが少なくなります。
  • 各サブデータフローが 2 GB のメモリにアクセスできるため、データフローごとにより多くの物理メモリを活用します。

プロセススライシングは、Query トランスフォームの詳細タブで使用できます。メモリを大量に消費する各操作は、以下の図に示すように個別のプロセスとして実行することができます。