我正在尝试使用 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
花了两分半钟! 在 H2 控制台中,“从测试中选择 count(*)”可以立即生效。我的错误是什么?我可以通过它执行sql查询吗?
提前致谢!
最佳答案
这是一个已知的优化问题。目前 SORM 不使用 COUNT
操作。既然问题终于出现了,那我就马上解决。预计 future 几天会发布修复此问题的版本。
问题修复已被推迟。您可以在 issue tracker 上监控其状态.
关于performance - 如何加速 SORM 中的简单计数操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14569082/