performance - 如何加速 SORM 中的简单计数操作?

标签 performance count h2 sorm

我正在尝试使用 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/

相关文章:

linux - Uniq 和计数

python - 为什么是 str.count ('' ) ≠ (from str.count ('A' ) + str.count ('B' ) + ... + str.count ('Z' ))

MySQL 使用 group by 计算计数、总和和百分比

database - 使用h2数据库时看不到内容 "in-memory"

java - H2 不识别 regexp_like

database - 如何避免 'Could not determine Hibernate dialect for database name [H2]!' ?

performance - 从源代码构建 Tensorflow 进行再训练不是更快吗?

python - 找出 Python 中的对象正在使用多少内存

c++ - 是否可以比使用 hashmap 更快地将字符串映射到 int?

javascript - 对于相同类型的工作,就性能而言,Javascript 和 jQuery 或 PHP 哪个更可取