oracle组的时间非常多!如何优化?
1。如果不进行优化,创建非空组的索引
将会浪费时间。一般情况下大家都会在group by字段建立索引,但是很多时候并没有什么作用。索引变得无效并且语句不经过索引。原因是被替换的字段不是非零字段。
如果该字段不设置为空,则执行的语句不会通过索引:
create index gtf_cf_sqs on gtf_cf(sqs);
如果该字段不设置为空:
alter table gtf_cf MODIFY (sqs not null) ;
这样执行就带有索引了。
2。创建位图索引
如果group by列为空,可以创建位图索引,同样的执行语句会使用该索引。 (位图索引通常可以为类型字段创建,类型字段是固定类型字段的较小类型,例如性别。它们的存储方式与常规索引不同)
create bitmap index gtf_cf_sqs on gtf_cf(sqs);
3。语句优化
可以使用where条件来过滤一些数据。
在方法1的语句中添加索引字段不为空的条件,执行的语句也会使用索引。
select sqs,count(*) from gtf_cf where sqs is not null group by sqs;
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。