10 パフォーマンス

10.1 Oracle GoldenGate Veridataのパフォーマンスの改善

Oracle GoldenGate Veridataのパフォーマンスに影響する要因、および大容量のデータを処理する場合にパフォーマンスを改善できる方法は次のとおりです。

データベースおよびネットワークの使用

Oracle GoldenGate Veridataの2つの重要なパフォーマンス要因は、次のとおりです。

  • データがどのようにソートされるか
  • ネットワーク間でデータがどのように送信されるか

これらのパフォーマンス要因のパフォーマンス統計は、終了した比較ごとに比較レポートに出力され、ソースおよびターゲットの初回比較ステップに対して記録されます。比較レポートの使用を参照してください

ネットワークの使用

Oracle GoldenGate Veridataは、効率的なデータ転送にハッシュおよびネットワーク・メッセージ圧縮を使用することで、ネットワークの使用を自動的に最適化します。表またはファイルの平均行のサイズ(バイト)が増加すると(bytes/rowパフォーマンス統計を参照)、ハッシュで達成される圧縮率も増加します(rh bytes/rowおよびhash comp rateパフォーマンス統計を参照)。行が50バイトか1000かに関係なく、非キー値を表す場合に使用されるバイト数は12になります。そのため、表サイズの割合(バイト)が大きい行では、ネットワークを効率的に使用する傾向があります。これらと同じ理由で、行サイズに対してキー・サイズが小さいと、ネットワークの使用が効率的になります。

また、NonStopプラットフォームでは、送受信のTCP/IPバッファ・サイズをチェックします。これらは、32K (Oracle GoldenGate Veridataの場合)に設定するようにしてください。

構成オプション

比較パフォーマンスの改善で考慮できるその他の要因は次のとおりです。

大きい表のパーティション化

大規模なソース表とターゲット表をパーティションに分割できます。大きい表のパーティション化の詳細は、パーティション化を参照してください。

データベースからのバッチとしてのCOOS行のフェッチ

データベースからcoos行をバッチとしてフェッチするには、coosバッチ・フェッチを設定します。詳細は、Coosバッチ・フェッチを参照してください。

一時表を使用したCOOS行のフェッチ

これは、Oracle Databaseにのみ適用されます。非同期確認フェーズ中の、特に主キーまたは一意キーがない表で、データベースからの行のフェッチのパフォーマンスを最適化するために、デフォルトでcoos戦略がcoos結合として選択されます。詳細は、『Oracle GoldenGate Veridataの管理』ガイドの「非同期フェッチ戦略の確認用のサーバー・パラメータ」「coos.join.strategy」を参照してください。この戦略では、一時表(プライベートまたはグローバル)を使用して、比較ペア表から行をフェッチします。Veridataユーザーには、表の作成権限が必要です。

列の除外

表の一部の列で比較が不要なユースケースでは、そのような列を比較から除外して、処理の負荷を軽減できます。列の除外の詳細は、列の除外を参照してください。

デルタ処理の使用

デルタ処理(Oracle GoldenGate Veridataで使用され、表またはファイルのすべての行ではなく、変更されたデルタ・ブロックのみを比較するパフォーマンス機能)を使用するように、比較ペアを構成できます。デルタ処理の詳細は、デルタ比較を参照してください。

主キー列の指定

キー列の場合、Oracle GoldenGate Veridataはデータを値で比較します。非キー列の値はハッシュで比較されます。キー列がない場合、すべての列がキー列として処理され、比較は表のすべての列について値で行われます。キー列を指定して、比較のパフォーマンスを高めます。主キー列の指定の詳細は、主キー(PK)列の指定を参照してください。

データベース・トランザクション分離レベルの変更

各Oracle GoldenGate Veridataエージェントでは、環境パラメータを格納するインストール・フォルダのルートに、agent.propertiesファイルがあります。これらのパラメータの1つは、database.transaction.isolationです。このプロパティでは、初回比較ステップの実行中に使用されるトランザクション分離レベルを制御します。SQL ServerおよびTeradataのデフォルト値は READ_UNCOMMITTEDです。つまり、行を選択するために発行される問合せは、他のトランザクションによって変更された行を読み取ることができますが、まだコミットされていません(ダーティ読取り)。他のトランザクションがデータを変更できないように共有ロックを発行したり、他のトランザクションのロックによってロックされることもありません。

READ UNCOMMITTEDオプションを使用する利点は、ロックによって影響されないためにデータの初期読取りが高速になることです。これの悪影響は、(トランザクションの間にデータが変更される場合があるため)多くのレコードがpossibly out-of-syncとしてラベル付けされる可能性があり、確認ステップで再度の比較が必要になることです。確認ステップで比較する行が多すぎると思われる場合は、プロパティ・ファイルを編集して、database.transaction.isolationをCOMMITED (コミットされたレコードのフェッチのみを許可)に設定できます。読取り一貫性を維持するために、ロックの影響により初回比較ステップが遅くなる可能性よりも、改善する方を重視する必要があります。

ノート:

(この段階では、ダーティ読取りが許可されないため、Oracleでサポートされている値はREAD_COMMITTEDのみで、確認ステップでは常にREAD_COMMITTEDが使用されます。)

プロファイル・オプション

パフォーマンスの向上に役立つ、ソート、初回比較、coosおよび修復機能の特定のパラメータを制御できます。

ソート・パラメータ

サーバーのソート: 次の要因は、ソート・メカニズムのパフォーマンスに影響します。
  • 比較される表の行の数
  • 表に定義される索引
  • 使用中のキー
  • データベースのチューニング方法

詳細は、ソート構成を参照してください。

初回比較パラメータ

  • 比較する行数を制限する: 特定のジョブ・プロファイルに「入力行数の上限」パラメータを使用することで、処理でフェッチされる行数を制約できます。これにより、少ない行数を処理して、表全体がどの程度非同期か(またはそうでないか)を確認できます。結果に基づき、完全な比較を実行するか、データの再同期化のみを実行するかについて決定できます。「入力行数の上限」パラメータは、初回比較プロセスの一般パラメータです。
  • この数を設定するには:

    1. Oracle GoldenGate Veridata UIで、「プロファイル」をクリックし、プロファイルを選択します。
    2. 「初回比較」タブをクリックし、「入力行数の上限」の値を更新します。
  • プロセスの優先度を上げる(NonStopのみ): Oracle GoldenGate Veridataエージェントに、NonStopシステムで可能な最高のプロセス優先度を割り当てます。優先度(およびプロセス名とCPU番号)は、ジョブ・プロファイルの初期および確認ステップのNonStop設定を使用して割り当てることができます。

  • 処理スレッドを増加する: Oracle GoldenGate Veridataサーバーを実行しているマシンのプロセッサが多い場合は、それに応じて「最大同時比較スレッド」パラメータの値を変更できます。詳細は、最大同時比較スレッドを参照してください
  • ソースおよびターゲットのオプティマイザ・ヒント: Oracle DBでは、ヒントを使用してパフォーマンスを高めることができます。詳細は、ソースおよびターゲットのオプティマイザ・ヒントを参照してください。

COOSパラメータ

  • coosステップを個別に実行

    デフォルトでは、Oracle GoldenGate Veridataは初回比較および非同期確認プロセスを同時に実行します。順に実行すると、使用するシステム・リソースが少なくなりますが、結果の処理に時間がかかります。

    このパラメータを設定するには:
    1. Oracle GoldenGate Veridata UIで、「プロファイル」をクリックし、プロファイルを選択します。
    2. 「非同期確認」タブをクリックし、「初回比較と同時に実行」の値を更新します。
  • coosステップのスキップ

    デフォルトでは、coosステップが常に実行されます。このステップは、データベースが停止した場合、またはレプリケーションでデータ変更がアクティブにレプリケートされない場合にスキップできます。

    このパラメータを設定するには:
    1. Oracle GoldenGate Veridata UIで、「プロファイル」をクリックし、プロファイルを選択します。
    2. 「非同期確認」タブをクリックし、「非同期確認ステップの実行」の値を更新します。
  • プロセスの優先度を上げる(NSK): Oracle GoldenGate Veridataエージェントに、NonStopシステムで可能な最高のプロセス優先度を割り当てます。優先度(およびプロセス名とCPU番号)は、ジョブ・プロファイルの初期および確認ステップのNonStop設定を使用して割り当てることができます。

  • COOSバッチ・サイズ: バッチを適用して、COOSフェーズを高速化できます。詳細は、非同期確認(COOS)バッチ・サイズを参照してください。
  • ソースおよびターゲットのオプティマイザ・ヒント

接続オプション

フェッチされる行のバッチ・サイズを増やしてスループットを上げてください。フェッチ・サイズを増やす方法の詳細は、接続構成を参照してください。

修復パラメータ

「同時修復操作数」および「修復バッチ・サイズ」パラメータを使用して、修復ジョブのパフォーマンスを最適化できます。詳細は、修復の構成を参照してください。

10.2 パフォーマンス統計

Oracle GoldenGate Veridataパフォーマンスの最も重要な2つの側面は、データベース・アクセスとネットワークの使用です。これらの側面の両方のパフォーマンス統計は、実行した比較ごとに比較レポートに出力され、ソースおよびターゲット・システムの初回比較ステップに対して記録されます。これらの統計の説明は次のとおりです。これらの統計の結果に応じて、データベース・アクセスとネットワークの使用を最適化する方法があります。

時間

フェッチされる行の処理にかかる時間。

フェッチされた行数

データベースからフェッチされる行数。

行/秒

1秒当たりの処理行数。

フェッチされたバイト数

処理されたバイトの合計数。

バイト/秒

1秒当たりの処理行数(バイト)。

フェッチされたLOBチャンク数

フェッチされたLOBデータの32Kブロックの数。

フェッチされたバッチ数

フェッチされた行バッチの数。デフォルトは、バッチ当たり10行です。

IPCメッセージ数

サーバーとエージェントのプロセス間のメッセージの数。

IPCバイト数

サーバーとエージェントのプロセス間で転送されるバイト数。

適用されたバイト数

適用されたメッセージ当たりのバイト数。

適用されたLOBチャンク数

ターゲット・データベースに適用される32KバイトのLOBチャンクの数。

LOBフェッチ時間(秒)

LOBデータのフェッチにかかる時間。

適用されたバッチ数

処理されたバイトの合計数。

トランザクション・バッチ数

データの適用に使用するトランザクションの数。

トランザクション単一文数

エラー・リカバリ中に適用される単一行のトランザクション数。