今天维护数据库时发现有条sql查询很慢,用set autot 发现是走upload_date字段索引的,当细致查下来发现其实并没有走索引。通过10046事件,发现走的是全表扫描:
从下面看出wait主要放映在 direct path read 该等待事件是ORACLE 11G的新特性。
Oracle Database 11g中有一个新特性,全表扫描可以通过直接路径读的方式来执行(Direct Path Read),如果全表扫描的大量数据读取是偶发性的,则直接路径读可以避免大量数据对于Buffer Cache的冲击。绕过buffer cache,这样的全表扫描就是物理读了。 在10g中,都是通过buffer来读的。
走的是全表扫描:
这是trc格式化以后得出的结果: