关于sum函数的效率问题?

hackthissite 2008-10-25 11:02:32
不知道
select sum(column_name)/100 from table_name

select sum(column_name/100) from table_name
哪个效率更高?达人详细解释一下。
...全文
309 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hackthissite 2008-10-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jdsnhan 的回复:]
理论上1的效率更高
不过,从执行计划上看,非海量数据的时候,差异很小
[/Quote]
我测试过了,数量达到百万级别的时候,区别很明显的……
icss_zhen 2008-10-25
  • 打赏
  • 举报
回复
楼上几位说的都没错。第一种是先sum再除。第二种是先除再sum.明显第一种除的次数少。二种sum的次数都一样。所以我认为应该也是第一种快。如果column_name不能整除100的话,第一种和第二种运算结果可能不一样哦。
mantisXF 2008-10-25
  • 打赏
  • 举报
回复
1
hackthissite 2008-10-25
  • 打赏
  • 举报
回复
大家能够结合它的执行计划,解释一下吗?
Andy__Huang 2008-10-25
  • 打赏
  • 举报
回复
我认为select sum(column_name)/100 from table_name
效率更高,因为它先完成sum得到一个结果,再除以100

而第二条语句是每次都除以100
hackthissite 2008-10-25
  • 打赏
  • 举报
回复
还有别的什么原因吗?
jdsnhan 2008-10-25
  • 打赏
  • 举报
回复
理论上1的效率更高
不过,从执行计划上看,非海量数据的时候,差异很小
BlueskyWide 2008-10-25
  • 打赏
  • 举报
回复
select sum(column_name)/100 from table_name 效率更高,
因为它比第二条语句少除了count(*)-1次。

[Quote=引用楼主 hackthissite 的帖子:]
不知道
select sum(column_name)/100 from table_name

select sum(column_name/100) from table_name
哪个效率更高?达人详细解释一下。
[/Quote]
zhangyong369 2008-10-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hdhai9451 的回复:]
我认为select sum(column_name)/100 from table_name
效率更高,因为它先完成sum得到一个结果,再除以100

而第二条语句是每次都除以100
[/Quote]支持

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧