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)重新执行删除操作,即可正常删除

更多达梦技术资讯,请访问达梦技术社区:达梦数据库 - 新一代大型通用关系型数据库 | 达梦云适配中心icon-default.png?t=LA92https://eco.dameng.com/

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐