1.问题描述
在执行删除表操作的时候,提示锁超时问题:
2.问题分析
经分析,出现该问题的一般是该表还有其他用户在进行增删改操作,可以通过查看阻塞会话。可以通过查杀阻塞会话后再进行删除表的操作。
3.解决方法
解决方法如下:
(1)执行以下SQL查找该表相关的阻塞会话:
select "V$SESSIONS".SESS_ID,"V$SESSIONS".SQL_TEXT,"V$SESSIONS".STATE,"V$SESSIONS".CURR_SCH,"V$SESSIONS".USER_NAME,"V$SESSIONS".TRX_ID,"V$SESSIONS".CREATE_TIME from v$sessions where trx_id in( select trx_id from v$lock where table_id in ( select tab.id from sysobjects sch,sysobjects tab where tab.schid=sch.id and sch.name||'.'||tab.name='SYSDBA.TEST')) and SQL_TEXT like '%insert%' or SQL_TEXT like '%update%' or SQL_TEXT like '%delete%'; |
通过本次查找,找到了会话ID为10491322688的会话,执行了一条插入,未提交,导致删除表无法删除。
(2)通过执行关闭会话的操作来释放改表,sp_close_session(sess_id);
(3)重新执行删除操作,即可正常删除
更多达梦技术资讯,请访问达梦技术社区:达梦数据库 - 新一代大型通用关系型数据库 | 达梦云适配中心https://eco.dameng.com/