v$SORT_USAGE.SQL_ID 不是会话当前的执行的SQL ID
Kevin Zou
2011-9-2
数据库的临时表空间使用率较高,在查询那个会话在使用临时表空间时,发现视图v$SORT_USAGE.SQL_ID 不是会话当前的执行的SQL ID。
当前使用了临时段的会话:
|
发现SYS用户的在使用较多的临时段。通过SQL_ID查看其运行的SQL:
SYS@hr9prd>SELECT /*+ ORDERED */
2 sql_text
FROM v$sqltext a
WHERE a.sql_id = '&sql_id'
ORDER BY piece ASC 3 4 5 ;
Enter value for sql_id: a96buqnd9gfnf
old 4: WHERE a.sql_id = '&sql_id'
new 4: WHERE a.sql_id = 'a96buqnd9gfnf'
SQL_TEXT
----------------------------------------------------------------
alter user sys tempo
这个SQL是我曾经运行过的,但不会占用这么多的临时段。
通过V$SESSION 和V$SORT_USAGE联合来查询:
|
看到V$SORT_USAGE.SQL_ID其实对应的V$SESSION.PREV_SQL_ID的字段,也就是会话运行SQL的前一个SQL。
-THE END-