请输入
菜单

如何查询锁表情况及处理方式?

下载

# 1.查询是否锁表
SHOW OPEN TABLES WHERE In_use > 0;

# 2.查询进程(如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程)
SHOW PROCESSLIST;

# 3.杀死进程id(就是上面命令的id列)
KILL 462540518;

 

SELECT
    *
FROM information_schema.PROCESSLIST
WHERE DB=DATABASE()
    AND COMMAND<>'Sleep'
    
    

-- 拼接 kill 进程SQL    
SELECT
    CONCAT('kill ',ID,';') mysql
FROM information_schema.PROCESSLIST
WHERE DB=DATABASE()
    AND COMMAND<>'Sleep'
    
  
    
    
-- 查询sqlserver 有没有锁表
-- 使用sql语句进行查看 ,锁定的表名 
select 
    request_session_id spid,
    OBJECT_NAME(resource_associated_entity_id) tableName
from sys.dm_tran_locks where resource_type='OBJECT'

锁表的查询和处理.sql

最近修改: 2025-02-07