Syniti DR 9.8新機能!パーティション(分割)リフレッシュ機能で全件転送の速度を改善


Syniti DR 9.8で追加されたリフレッシュ処理のパーティション機能を使用すると、リフレッシュ(全件転送)時の分割処理を構成でき、複数の並列スレッドがデータを処理するため、パフォーマンスを向上できます。

今回はこのリフレッシュ処理のパーティション機能を紹介していきます。

パーティションの作成

パーティション機能を利用するために、事前にレプリケーションで設定を行う必要があります。

1.メタデータエクスプローラでレプリケーションを選択します。
2.右クリックし、「プロパティ」からレプリケーションプロパティを開きます。
3.「優先」>「リフレッシュ」に移動し「パーティションを使用」にチェックを入れます。

4.「パーティションを追加」をクリックし、where句を指定し、分割条件を設定します。

これで設定は完了です、リフレッシュレプリケーションを実施するとパーティション機能を利用してリフレッシュが実施されます。ただ、デフォルトの表示では各パーティションでの処理進捗を確認できません。表示を変更するにはレプリケーションモニターで「パーティションの表示/非表示」のアイコンをクリックします。

簡易テスト

簡易的なテストとして10000000行、サイズとしては350MB程度のテーブルを従来のシーケンシャルなバルクインサートと、2、4、10分割でパーティション機能を使いバルクインサートした場合の結果を比較してみました。

分割数時間
シーケンシャル1分54秒
2分割1分32秒
4分割1分11秒
10分割1分31秒

上記のように4分割した場合が最も高速となる結果となりました。おそらく、あまりに分割数が多くなってしまうと、データベース側のリソースが飽和してしまい、効果が低くなるためと想定されます。

今回の環境はテスト用の環境であるため、このような結果となりましたが、よりパフォーマンスの高い環境であれば、分割数を増やすことでより効果が期待できます。

このため、最適な分割数といったものは環境や対象となるテーブルごとに異なり、チューニングが必要にはなりますが、大規模なテーブルであればあるほど効果が期待できる機能ですので、リフレッシュ速度でお悩みの場合には是非ご検討ください。

関連したトピックス

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください