在数据库优化过程中,索引的重要性是不言而喻的,但是在我们进行性能调整过程中, 一个索引是否能够被使用到,在索引创建之前是存在不确定性的。
而创建索引又是一个代价很高的操作,尤其是数据量很大的情况下,在11g环境下我们就可以考虑使用虚拟索引,预估索引的效果。
1.
alter session set "_use_nosegment_indexes" = true; create index idx_tkk1207_query on tkk1207(ownerid) nosegment; explain plan for select * from tkk1207 t where t.ownerid = 'xxx'; select * from table(dbms_xplan.display()); 2. 高锋期数据库运行缓慢,latch: cache buffers chains等待 Oracle使用WHERE C1='' OR C2 IN(SubQuery)的方式会造成索引失效问题,以下是测试示例: a、将子查询的结果先取出,然后再静态编入到IN()条件;b、把两个条件的OR,改为UNION
本文介绍了Oracle数据库中索引优化的两种实用技巧:一是通过创建虚拟索引来预估实际索引的效果,降低性能调整的成本;二是针对特定查询场景,如使用OR连接条件或子查询的情况,提出改进方案以避免索引失效。

106

被折叠的 条评论
为什么被折叠?



