select distinct ...from table where ....
默认在oracle中explain的话,显示表均为full scan,有看到有资料写着“一般distiict 语句不使用索引。。”。但条件中有可以用到的索引,加了索引select /*+index(...)*/ distinct ...在oracle中explain索引也能使用,但cost反而更大。由于只是测试环境,不敢肯定数据量叫大的情况下又会怎么样。
请教select distinct语句应该加上索引吗,加了效果会不如不加吗?
默认在oracle中explain的话,显示表均为full scan,有看到有资料写着“一般distiict 语句不使用索引。。”。但条件中有可以用到的索引,加了索引select /*+index(...)*/ distinct ...在oracle中explain索引也能使用,但cost反而更大。由于只是测试环境,不敢肯定数据量叫大的情况下又会怎么样。
请教select distinct语句应该加上索引吗,加了效果会不如不加吗?
select * from (select x,row_number() over(partion by x order by x) rn from table where ...) where rn=1
快中,那么全表扫描会比索引性能好,索引通常会提高SELECT,UPDATE以及DELETE语句的性能,但会
降低INSERT语句的性能.
如果index(a,b,c,d)假如条件有b和c,也有可能被用到,这是因为索引比表小的多,从索引找会快一些,但这时是index skip scan,也就是对a相当于还是全扫描,对b、c是索引扫描
请问oracle会有“最左前缀”的要求吗?即a没有用到,则不采用改索引?