Code前端首页关于Code前端联系我们

oracle组的时间非常多!如何优化?

terry 2年前 (2023-09-26) 阅读数 46 #数据库

1。如果不进行优化,创建非空组的索引

将会浪费时间。一般情况下大家都会在group by字段建立索引,但是很多时候并没有什么作用。索引变得无效并且语句不经过索引。原因是被替换的字段不是非零字段。

如果该字段不设置为空,则执行的语句不会通过索引:

create index gtf_cf_sqs on gtf_cf(sqs);

oracle group by非常耗时!要如何优化?
如果该字段不设置为空:

alter table gtf_cf MODIFY (sqs not null) ;

oracle group by非常耗时!要如何优化?
这样执行就带有索引了。

2。创建位图索引

如果group by列为空,可以创建位图索引,同样的执行语句会使用该索引。 (位图索引通常可以为类型字段创建,类型字段是固定类型字段的较小类型,例如性别。它们的存储方式与常规索引不同)

create bitmap index gtf_cf_sqs on gtf_cf(sqs);

oracle group by非常耗时!要如何优化?

3。语句优化

可以使用where条件来过滤一些数据。

在方法1的语句中添加索引字段不为空的条件,执行的语句也会使用索引。

select sqs,count(*) from gtf_cf where sqs is not null group by sqs;

oracle group by非常耗时!要如何优化?

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门