小弟最近在优化一个大sql,在sql执行期间通过v$active_session_history视图查询到如下结果:
EVENT CURRENT_OBJ# COUNT(*)
--------------------------------------------- ------------ ----------
db file scattered read 18548 1
db file sequential read 22146 1
gc current block 2-way 18524 2
db file sequential read 18548 2
direct path write temp 18524 2
gc current block 2-way 18522 2
db file sequential read 18550 3
18548 3
direct path read temp 18522 5
gc cr multi block request 18522 7
db file scattered read 18550 7
gc cr grant 2-way 18548 7
db file scattered read 18522 8
18550 9
db file scattered read 18524 11
db file parallel read 18524 11
db file sequential read 18522 14
18522 15
db file parallel read 18522 42
direct path read temp -40016301 50
18524 61
db file sequential read -40016301 329
db file scattered read -40016301 643
-40016301 2530
从查询结果中有如下两个疑问:
1.某些等待事件(db file sequential /scattered read,direct path read temp)对应的current_obj#为-40016301(负数),负数是不是表示此等待事件并不针对特定的对象,但是对于db file sequencitial/scatterred这两个等待事件发生时必定是可以定位到某个对象 的,但是这里显示的current_obj#却为-40016301
2.查询结果中统计情况最多的既然是current_obj#为-40016301且等待事件为空,这种情况是表示oracle在采样时该sql并没有经历任何等待是这个意思吗?
希望各位不吝赐教!