0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GoldenGate Veridata23cを試す(5) – 簡易性能検証報告

Posted at

はじめに

Oracle GoldenGate Veridata 23c を試すシリーズの補足第2弾として、簡易性能検証についての報告です。ただし、性能については比較する表の件数、カラムの数、それらのデータ型とサイズなどが影響するために曖昧な数値を提示する事はできません。ここでのデータはあくまで特定の環境で行った値であり、責任を持てるものではない事を了承下さい。ただし、公式に示している情報(ブログ)のあるので、そちらもご参照下さい。
How to size Oracle GoldenGate Veridata?

環境について

環境は 「GoldenGate Veridata23cを試す(3) 接続からレポートまで」で構築した環境を再利用します。この環境のSource および Target である Oracle Database 内に比較用の表を作成し、表の件数、カラム数、カラムのデータ型などを変動要素として何パターンかを簡易的に計測してみます。パフォーマンス向上のためにはCPU性能やソートのためのメモリ領域など様々ありますが、十分に試しきれない点はご勘弁下さい。

ノード名 役割 スペック メモ
ServerS source DB 12core/16GB DB EE 19c 19.26 Xeon(R)E5-2697 v2 2.70GHz
ServerT target DB 12core/16GB DB EE 19c 19.26 Xeon(R)E5-2697 v2 2.70GHz
ServerVDT VERIDATA Server(Java Agent 含む) 12core/16GB Veridata 23c Xeon(R) CPU E5540 2.53GHz

実装の手順および実行

  • サンプル表の準備
    サンプル表を作成します。過去DWH系のテスト目的で作成した個人使用の表で、下記の構成となっています。
SQL> desc tblc
 名前                                    NULL?    型
 ----------------------------------------- -------- ----------------------------
 CSEQ                                      NOT NULL NUMBER
 CDATA                                              VARCHAR2(256)
 C5M                                                NUMBER
 C1M                                                NUMBER
 C500K                                              NUMBER
 C250K                                              NUMBER
 C100K                                              NUMBER
 C40K                                               NUMBER
 C10K                                               NUMBER
 C1K                                                NUMBER
 C100                                               NUMBER
 C25                                                NUMBER
 C10                                                NUMBER
 C5                                                 NUMBER
 C4                                                 NUMBER
 C2                                                 NUMBER

カラム名はデータのカージナリティとなっていて、PL/SQLにより乱数を発生させ各カラムごとにデータが重複するようデータを生成・投入していきます。比較的大きな変動要素である件数調整は PL/SQLで都度調整する形を取りました。以下は投入後のイメージです。これを Source / Target の双方で準備し比較します。
(実表のイメージは以下)

Q21-01.png

  • 様々な件数で試してみる – 操作イメージとともに
    上記の表に対し、件数を変更しながら比較ジョブを実行します。以下が結果となりました。データは数回実施した平均値となります。
件数 データサイズ 時間 備考
1000件 3秒
10万件 5秒
1000万件 約800MB 70秒程度
1憶件 約8GB 11分程度 設定により改善(※)

※ 初期比較・フェッチバッチ・サイズ(※) 1000⇨10,000で1分程度改善

  • LOB データ (CLOB, BLOB) を追加して試してみる
    「はじめに」のセクションで紹介したブログにも LOB型の比較で影響が出やすいとの記載もあり、CLOB および BLOB データの追加と性能の劣化傾向を確認します。ここでもリソースに加え、特に I/O性能に依存する事になると思われるので、あくまで特定環境における参考値として扱って下さい。
    サンプル表にCLOB型カラムとBLOB型カラムを3つづつ、計6つのLOBを追加します。
SQL> desc tblc
 名前                                    NULL?    型
 ----------------------------------------- -------- ----------------------------
 CSEQ                                      NOT NULL NUMBER
 CDATA                                              VARCHAR2(256)
 C5M                                                NUMBER
 C1M                                                NUMBER
 C500K                                              NUMBER
 C250K                                              NUMBER
 C100K                                              NUMBER
 C40K                                               NUMBER
 C10K                                               NUMBER
 C1K                                                NUMBER
 C100                                               NUMBER
 C25                                                NUMBER
 C10                                                NUMBER
 C5                                                 NUMBER
 C4                                                 NUMBER
 C2                                                 NUMBER
 CLOB1                                              CLOB
 CLOB2                                              CLOB
 CLOB3                                              CLOB
 BLOB1                                              BLOB
 BLOB2                                              BLOB
 BLOB3                                              BLOB

全てのLOBカラムが空の状態で実施するプレテストを含めCLOB1から BLOB3まで順にLOBデータをセットしていき、計6つのLOB型カラムが比較対象になる7パターンのジョブを実行した結果が以下になります。LOBデータとして格納したデータ内容は全て同じものとしました。以下が結果です。

要件:100万件 データ量(表領域) 1回目 2回目 3回目
1 CLOB/BLOBは空で比較 90MB 00:00:11 00:00:11 00:00:11
2 CLOB1にデータ投入 1170MB 00:00:48 00:00:43 00:00:44
3 CLOB2にデータ投入 2002MB 00:01:19 00:01:17 00:01:16
4 CLOB3にデータ投入 3026MB 00:01:57 00:01:51 00:01:49
5 BLOB1にデータ投入 3968MB 00:08:57 00:08:52 00:08:57
6 BLOB2にデータ投入 - 00:15:07 00:15:19 00:15:17
7 BLOB3にデータ投入 - 00:21:40 00:21:49 00:21:38

想定どおり、LOBデータの追加に伴い、比較処理に費やす時間が長くなる事が確認できます。加えてCLOBとBLOBを比較するとBLOBデータを持ったカラムが増える程、比較ジョブの長期化傾向が明らかになりました。

最後に

Oracle GoldenGate Veridata 23c を試すシリーズの補足として、少しムチャではありますが性能傾向を知りたかったので測定をしてみました。サイジングについては「はじめに」で紹介したブログを起点に検討を始めるのが適切だと思いますが、比較対象の件数やデータ型およびそのカラム数など限定的ではありますが見えてきた傾向が参考になればと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?