达梦数据库删除某张表的时候删除失败了,提示锁超时,请问怎么办?

提问者:帅平 问题分类:数据库
达梦数据库删除某张表的时候删除失败了,提示锁超时,请问怎么办?
达梦数据库删除某张表的时候删除失败了,提示锁超时,请问怎么办?
1 个回答
也不长发及腰
也不长发及腰
这是因为当前表正在被执行以下查询,删除,更新等操作,可以等待其他sql执行完毕后再试,或者查询出那些sql正在对该表进行操作,查询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='DEMO.TEST1'))
and SQL_TEXT like '%insert%' or SQL_TEXT like '%update%' or SQL_TEXT like '%delete%';

记得把tab.name修改成想要删除的表。查询之后可以看到对应的session了,如下图:

最后使用
sp_close_session(${session_id})
kill掉对应的session,

再执行删除就好了。
发布于:5个月前 (11-25) IP属地:四川省
我来回答