请问 SQL Server 如何查询 Lock 时,是被哪个 SQL, IP 给锁住? 举例查询 select * from order where date between '2024-10-01' and '2024-10-15' Lock 了 能查到是 192.168.1.26 IP 更新 SQL update order set check_status = 'Y' between '2024-10-01' and '2024-10-02'
1
VDarker 3 天前
sql server 那个官方的管理软件就可以看
|
2
quan01994 3 天前
USE master
GO SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 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 这个可以查询当时还未提交的事务 。 |
3
quan01994 3 天前
ip 的话 ,很难查到,除非你的 sql 注释里带了 iP
|
4
quan01994 3 天前
或者可以区分 ,loginname, 每台机器 不同的 loginname. 这个是可以区分的 .
|