ベンチマーク試験用アプリケーションには「JDBCBench(注1)」を使用しました。
※注1:
JDBCBenchは、TPCベンチマーク試験の中のTPC-Bを参考にし、オフラインでのバッチ処理をモデル化したベンチマーク試験です。現在、TPC-Bベンチマーク試験自体は廃止されているものの、JDBCBenchはPostgreSQL/MySQLそれぞれのベンチマークツールとしてよく利用されている「pgbench」「mysqlbench」と同様の試験を行えます。
ベンチマークテスト用のデータベースとしては、「branches」「tellers」「accounts」「history」の4つのテーブルを使用します。JDBCBenchは、この4つのテーブルに対して以下の5つのSQL文を1つのトランザクションとして実行します。
update accounts set abalance = abalance + 変数 where aid = 変数
select abalance from accounts where aid = 変数
update tellers set tbalance = tbalance + 変数 where tid = 変数
update branches set bbalance = bbalance + 変数 where bid = 変数
insert into history(tid,bid,aid,delta) values(変数,変数,変数,変数)
指定された回数分だけこのトランザクションを実行し、その時の処理時間を計測します。そしてその処理時間を元に、TPS(トランザクション/秒)値を結果として出力します。
またJDBCBenchは、このトランザクション処理を同時に実行するクライアント数を設定することができます。この同時実行クライアント数を大きな値に設定することにより、データベースサーバに大きな負荷をかけることができます。
|