[Seasar-user:11065] Re: s2dao 大規模テーブルでselect count(*) 文が非常に時間がかかる

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2007年 10月 17日 (水) 13:52:09 JST


中村(taedium)です。

> s2Dao -> JDBCの順番に同じsqlを実行

> JDBC -> s2da0の順番に同じsqlを実行

私が言いたかったのは、
例えば問題となっているgetNumberOfRows()が
定義されたDaoをHogeDaoとするとき

public interface HogeDao {
  int foo();
  int getNumberOfRows();
}

foo()を呼んでからgetNumberOfRows()を呼ぶと、
HogeDaoの初期化時間を含まない
getNumberOfRows()の実行時間を計測できますよ、
ということでした。
(foo()を呼んだときに初期化されるので)

> jdbc: 156 msec
> dao : 6781 msec

JDBCで直接実行したときと、S2Dao経由で実行したときで
使われるインデックスが異なるというのは考えにくいので
mysql-connector 5.0.3のメターデータ取得が遅いのかもしれませんね。
(Daoの初期化でDBのメターデータへのアクセスが起こります)

ともあれ、解決されたようでよかったです。
-- 
Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]>




Seasar-user メーリングリストの案内