- 前一段时间,查询V$LOCK视图时,发现有些会话保持锁的时间过长,就写了这条SQL语句来查找是哪些SQL语句长时间不提交?
- select s.sid,s.serial# ,ss.sql_text from v$session s ,v$sql ss
- where s.PREV_HASH_VALUE !=0
- and s.SQL_HASH_VALUE=0
- and s.PREV_HASH_VALUE=ss.hash_value
- and (ss.sql_text like '%insert%')
- order by s.sid,s.serial#;
- 会话长时间不提交,如果要对数据库那张表做ddl维护操作,那就比较困难了.会话长时间不提交,通常是因为事务设计的不合理造成的.
- 注:把上面的语句改一下,也可以查询update,与delete的sql语句