【发布时间】:2013-02-26 05:44:35
【问题描述】:
谁能告诉我聚合函数是如何在 SQL 数据库中实现的,例如:Oracle 或 SQL Server。
我的意思是,当 select 子句中存在聚合函数时,这些数据库是否使用一些内部数据结构或算法。
我问这个的原因是因为我在 java ArrayList 中有 100,000 条记录,当我尝试对所有值求和时大约需要 1 分钟,但是当相同的 100,000 条记录存储在 DB 中并且我使用 sum( column_nm) 它的执行时间几乎是 1/4。
我想以类似的方式提高我的 java 代码性能,为此我想了解 SQL 聚合函数的内部结构。
谢谢。
【问题讨论】:
-
在一个 ArrayList 中总结一百万条记录的一分钟听起来可怕慢。您是否包括首先从数据库中获取所有记录所需的时间?
-
这是十万(十万)条记录,而不是一百万。
-
对不起,我的意思是 10,00,000 条记录,没有任何数据库操作,但我确实有一些其他的内存操作。
-
你的零还在。没关系,但我们明白了:P。所以.. 一百万条记录?
-
数据库可能是在本机代码中实现的,而您的
ArrayList代码可能在“客户端”VM 中运行,尤其是在 IDE 中。如果将其全部加载到内存中并在“服务器”虚拟机中运行,它甚至可能会胜过数据库。
标签: java sql sql-server oracle aggregate-functions