[Seasar-user:19896] [S2JDBC] h2database利用時のAutoSelect<T>.getCount()の挙動について

TAKEUCHI Hideyuki [E-MAIL ADDRESS DELETED]
2010年 6月 22日 (火) 17:41:04 JST


たけうちと申します。

S2JDBCをh2databaseで使用しているのですが、巨大なテーブルの
行数をカウントするのに非常に時間がかかってしまいます。

h2databaseは"count(*)"を呼び出した際は高速にカウントを
取得できるようになっているとマニュアルに記載されているのですが、
  jdbcManager.from(Entity.class).getCount()
を実行すると
  select count(T1_.ID) from ENTITY T1_
が発行されてしまって最適化が効きません。

この挙動を簡単に変更することは可能でしょうか?

あと、AutoSelect<T>.getCount()のjavadocに
  SELECT COUNT(*)の結果である行数を返します。
と書かれており実際に実行されているSELECT COUNT(id)と
処理の内容が異なっているように思えます。

--
たけうち


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