2

SORM を使用して大きなテーブルで単純なカウント操作を実行しようとしています。これは不可解に遅く動作します。コード:

case class Tests (datetime: DateTime, value:Double, second:Double)

object DB extends Instance (
  entities = Set() +
    Entity[Tests](),
  url = "jdbc:h2:~/test",
  user = "sa",
  password = "",
  poolSize = 10
)

object TestSORM {
  def main(args: Array[String]) {
    println("Start at " + DB.now())
    println(" DB.query[Tests].count() = " + DB.query[Tests].count())
    println("Finish at " + DB.now())
    DB.close()
  }
}

結果:

Start at 2013-01-28T22:36:05.281+04:00
 DB.query[Tests].count() = 3390132
Finish at = 2013-01-28T22:38:39.655+04:00

2分半かかりました!H2 コンソールでは、「select count(*) from tests」が目盛りで機能します。私の間違いは何ですか?それを介してSQLクエリを実行できますか?

前もって感謝します!

4

1 に答える 1

2

これは既知の最適化の問題です。現在、SORM はCOUNT操作を使用していません。ようやく問題が発生したので、すぐに対処します。近日中にこれを修正するリリースを期待してください。


問題の修正が遅れています。課題トラッカーでそのステータスを監視できます。

于 2013-01-28T19:31:59.167 に答える