题目部分
在Oracle中,如何查到会话正在执行的SQL语句?
♣
答案部分
SQL语句如下所示:
SELECT B.SQL_ID, B.SQL_TEXT
FROM GV$SESSION A, GV$SQL B
WHERE A.SQL_ID = B.SQL_ID
AND A.INST_ID = B.INST_ID
AND A.SID = 1070;
通过SQL_ID这个字段,可以获取到某个会话正在执行的SQL语句。
SQL_ID | VARCHAR2(13) | 正在执行的SQL语句ID |
---|---|---|
SQL_CHILD_NUMBER | NUMBER | 正在执行的SQL语句的子游标的ID,从0开始 |
SQL_EXEC_START | DATE | 该会话开始执行该SQL语句的时间。若SQL_ID为空,则该列为空。 |
SQL_EXEC_ID | NUMBER | SQL执行的标识符ID。若SQL_ID为空或SQL还未开始执行,则该列为空。对应于V$SQL_MONITOR.SQL_EXEC_ID列。 |
本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗