查看数据库是否存在行锁阻塞事务
执行以下SQL查看数据库当前是否存在行锁,以及会话间的阻塞关系。
SELECT
waiting1.pid AS waiting_pid,
waiting2.usename AS waiting_user,
waiting2.query AS waiting_statement,
blocking1.pid AS blocking_pid,
blocking2.usename AS blocking_user,
blocking2.query AS blocking_statement
FROM sys_locks AS waiting1
JOIN sys_stat_activity AS waiting2
ON waiting1.pid = waiting2.pid
JOIN sys_locks AS blocking1
ON waiting1.transactionid = blocking1.transactionid
AND waiting1.pid != blocking1.pid
JOIN sys_stat_activity AS blocking2
ON blocking1.pid = blocking2.pid
WHERE NOT waiting1.GRANTED;