配列での同様のSQL文の適用
BATCHSQL
パラメータでは、Replicatのパフォーマンスを向上させます。BATCHSQL
を使用すると、Replicatは同様のSQL文を配列にまとめてより高速に適用します。標準モードでは、Replicatは1回に1つのSQL文を適用します。
ReplicatがBATCHSQL
モードの場合、小さな行の変更は大きな行の変更よりも高いパフォーマンスの向上を示します。行変更当たりのデータ量が100バイトの場合、BATCHSQL
を使用することによってReplicatのパフォーマンスが最大で300%向上することがわかっていますが、実際のパフォーマンス向上は、混在する操作に応じて異なります。行変更当たりのデータ量が約5,000バイトの場合、BATCHSQL
を使用するメリットは低下します。
SQL文をバッチにまとめると、効率性は向上しますが、メモリーも消費します。最適なパフォーマンスを維持するために、次のBATCHSQL
オプションを使用してください。
BATCHESPERQUEUE BYTESPERQUEUE OPSPERBATCH OPSPERQUEUE
値を設定するベンチマークとして、それぞれ500バイトの1,000のSQL文をまとめた1つのバッチが必要とするメモリーは10MB未満であると想定してください。
BATCHSQL
をBATCHTRANSOPS
オプションとともに使用して、配列のサイズを調整できます。BATCHTRANSOPS
は、コミットが必要になる前に1つのトランザクションにグループ化可能な最大バッチ操作数を制御します。非統合Replicatのデフォルトは1000です。統合Replicatのデフォルトは50です。統合Replicatを使用する際に多くの待機依存性がある場合、BATCHTRANSOPS
の値を減らしてみてください。待機依存性の数を確認するには、OracleデータベースのV$GG_APPLY_COORDINATOR
データベース・ビューのTOTAL_WAIT_DEPS
列を表示します。
追加の使用方法の考慮事項および構文は、『Oracle GoldenGateリファレンス』を参照してください。