TenForward

技術ブログ。はてなダイアリーから移転しました

JDBCBench

JDBCBench ってのがあって,TPC-B ベンチマーク相当の事をやってくれるものです.pgbench とかと同じですね.

で,ここのページには,いくつか改良版が置かれていて,よりそれらしい(?)テストが出きるようになっています.

それぞれの違いについて (英語力ないので間違っている可能性大 ^^;) 忘れないため書いておきます.

JDBCBench.java

Each client uses its own thread, but they all share the same connection to the database.

オリジナル(?).複数クライアントが同時にDB接続をするようになっているけど,DBとのコネクションを全部が共有している.

JDBCBench1.java

we rewrote JDBCBench to use one connection per thread.

スレッド毎に 1 コネクションを使うように改造した.

JDBCBench2.java

A common mistake Java programmers make is to rely entirely on garbage collection to close statements and result sets.
: (snip)
So, the first improvement we decided to make was to close all client objects when done with them.

ははは.単に使い終わった Statement オブジェクトを閉じるようにしただけ.

JDBCBench3.java

The improvement at this stage is to replace the java.sql.Statement objects with java.sql.PreparedStatement objects.

Prepared statement を使うようにしてみた (ヲイ).

JDBCBench4.java

So we changed the benchmark to use transactions. We switched auto-commit off and issued a manual-commit after each TPC-B step.

トランザクションを使うようにしてみた.

JDBCBench5.java

we changed the benchmark to use procedures.

プロシージャを使うようにしてみた.

順番に結果は良くなるみたいですね.しかし最初はやっつけ仕事で作ったプログラムでしょうか... (^_^;)