51Testing软件测试网\2cGa+\2o
在操作中,为什么有时一个表的某个字段明明有索引,当观察一些语的执行计划确不走索引呢?如何解决呢?本文我们主要就介绍这部分内容,接下来就让我们一起来了解一下。51Testing软件测试网}6M/l0f2rh$D
#^7R9ye"?;}0不走索引大体有以下几个原因:1qH+L{8]^-^0
|:\9wN/~!LAq0你在Instance级别所用的是all_rows的方式51Testing软件测试网"P"t7~D2T6uaD
Q1^[$pVp_,C~s0你的表的统计信息(最可能的原因)51Testing软件测试网0rs(v6l`!~?51Testing软件测试网4G
u`&}3n~Z
你的表很小,上文提到过的,Oracle的优化器认为不值得走索引。g,FI7y%R%@;`1D$O6_7A051Testing软件测试网
fL!Y8~5C4v{C
wK
解决方法:;?lf|DzS051Testing软件测试网6W"HCE UQ|
可以修改init.ora中的OPTIMIZER_MODE这个参数,把它改为Rule或Choose,重起数据库。也可以使用4中所提的Hint。m:\0v)^$GL$[0
6v/`Y3xPam0不走索引的其它原因::G
S,eg.KyN051Testing软件测试网N7M&yn3f!^m!_k
1、建立组合索引,但查询谓词并未使用组合索引的第一列,此处有一个INDEX SKIP SCAN概念。!@Fd8@.v
x7p6P0
7v/Hf6j6fl02、在包含有nul