|
本帖最后由 cugshomi 于 2014-8-6 15:38 编辑
我的数据库最近也出现了这个问题,但是我对这个问题为什么出现一直持有怀疑态度,在11g R2的数据库中,数据库通过隐含参数控制什么时候使用direct path read,理论上是超过一定的块大小之后就会触发直接路径读。但是事实上,我数据库中的某张表上建有分区,而且是历史数据,没有过任何的刷新,统计信息也没有刷新,数据库之前访问这张表的历史分区时,使用索引都是partition index range scan,但是突然在某天访问同样的分区,就变成了partition index fast full scan,而且当时出现问题时,存储达到IO极限,为了确定是否是执行计划的问题,立马把sql执行一遍看计划,但是奇怪的是,前端应用服务器抛过来一样的sql ,采用的是index fast full scan ,我自己从sqlplus上抛进去相同的sql ,执行计划是index range scan。所以我基本可以断定,这是一个数据库的bug,不可能在同一时间同一sql,来源不同就采用不同的执行计划,而且在数据量以及统计信息没有发生任何变化的情况下就发生。 |
|