ITPub博客

首页 > 数据库 > Oracle > 查看未提交的sql

查看未提交的sql

原创 Oracle 作者:Curry_0316 时间:2015-11-30 18:25:34 0 删除 编辑
---这条sql可以查到会话最后一次执行的未提交的sql,比如我之前insert了两次,然后做了一次select,用下面sql可以查看第二次insert的sql信息,第一次insert是查询不到的
select s.SQL_TEXT from v$sql s,v$transaction t where s.LAST_ACTIVE_TIME=t.START_DATE;


如何出现下面的情况,sid=10的会话阻塞了sid=14的会话,这是可以直接基于sid查看
SESS                        ID1        ID2         LMODE  REQUEST TY      CTIME SQL_ID        EVENT                                LAST_CALL_ET
-------------------- ---------- ---------- ---------- ---------- -- ---------- ------------- ------------------------------------ ------------
Holder:1:10,247        524320       9448          6          0     TX        846                        SQL*Net message from client                    53
 Waiter:1:14,229                         9448          0          4     TX        826  9b433301221jp enq: TX - row lock contention                 826
SELECT sql_text
  FROM v$sqltext a
 WHERE (a.hash_value, a.address) IN
       (SELECT DECODE(sql_hash_value, 0, prev_hash_value, sql_hash_value),
               DECODE(sql_hash_value, 0, prev_sql_addr, sql_address)
          FROM v$session b
         WHERE b.sid = '10')
 ORDER BY piece ASC;      
---这条sql只能查询到的会话最后执行的一条sql,比如我之前insert了两次,然后做了一次select,用这条sql查询时只能查到select语句

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29953799/viewspace-1849933/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-10-11

  • 博文量
    89
  • 访问量
    280148