天天看點

mysql一張表卡死,mysql 表 卡死

最近在測試環境的mysql執行一個alter table 語句時一直處于阻塞狀态,通過 show processlist 檢視線程一直處于Waiting for table metadata lock,

show processlist

select trx_state, trx_started, trx_mysql_thread_id, trx_query from information_schema.innodb_trx

KILL processid

------------SQL server

查找阻塞程序:

SELECT blocking_session_id '阻塞程序的ID', wait_duration_ms '等待時間(毫秒)', session_id '(會話ID)' FROM sys.dm_os_waiting_tasks

殺死阻塞程序:

KILL session_id

查找事務

SELECT es.session_id, es.login_name, es.host_name, est.text

, cn.last_read, cn.last_write, es.program_name

FROM sys.dm_exec_sessions es

INNER JOIN sys.dm_tran_session_transactions st --系統裡還存在的事務

ON es.session_id = st.session_id

INNER JOIN sys.dm_exec_connections cn

ON es.session_id = cn.session_id

CROSS APPLY sys.dm_exec_sql_text(cn.most_recent_sql_handle) est

LEFT OUTER JOIN sys.dm_exec_requests er

ON st.session_id = er.session_id

AND er.session_id IS NULL