select count按月分区的表,怎样做效率最高?

济南大飞哥 2017-09-07 10:09:50
select 条件为时间,跨度可能有几个月,也可能不跨。现在只想查询个count,问下是直接count全表,还是计算时间,一一count分区表,然后做加法,哪个效率高些?
...全文
741 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mhxlanyu 2019-01-24
  • 打赏
  • 举报
回复
minsic78 2017-09-11
  • 打赏
  • 举报
回复
引用 6 楼 flyfeifei66 的回复:
[quote=引用 5 楼 minsic78 的回复:] count全表实际上还是count涉及到的分区然后相加,CBO会把不需要的数据自动剔除不扫描的。 有个带分区字段的非空索引会好点,能把表扫描转移到索引扫描上来完成count,变相将大表垂直分割切成小表了。
OK[/quote] 如果想进一步确认分区修剪功能是否在某个查询中被启用,建议查看sql执行计划。
jdsnhan 2017-09-08
  • 打赏
  • 举报
回复
如果仅是简单的count,我认为没啥差异
济南大飞哥 2017-09-08
  • 打赏
  • 举报
回复
引用 5 楼 minsic78 的回复:
count全表实际上还是count涉及到的分区然后相加,CBO会把不需要的数据自动剔除不扫描的。 有个带分区字段的非空索引会好点,能把表扫描转移到索引扫描上来完成count,变相将大表垂直分割切成小表了。
OK
minsic78 2017-09-08
  • 打赏
  • 举报
回复
count全表实际上还是count涉及到的分区然后相加,CBO会把不需要的数据自动剔除不扫描的。 有个带分区字段的非空索引会好点,能把表扫描转移到索引扫描上来完成count,变相将大表垂直分割切成小表了。
lkhog 2017-09-07
  • 打赏
  • 举报
回复
count(*)会好一些 增加缓存命中率
卖水果的net 2017-09-07
  • 打赏
  • 举报
回复
效率的区别不会太大, 几乎是相等的。
alex259 2017-09-07
  • 打赏
  • 举报
回复
数据量有多大,大就分区,不大就直接count

17,377

社区成员

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

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