设置一个情景,表示应用程序代码引发了并发性问题
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRAN
SELECT *
FROM HumanResources.Department
INSERT HumanResources.Department
(Name,GroupName)
VALUES
('Test','QA')
新建查询,通过查询sys.dm_tran_session_transactions动态管理视图(DMV)来识别所有打开的事务:
SELECT session_Id,transaction_id,is_user_transaction,is_local
FROM sys.dm_tran_session_transactions
WHERE is_user_transaction=1
有了会话ID,可以通过查询sys.dm_exec_connections和sys.dm_exec_sql_text来挖掘最近执行的查询的详细信息:
SELECT s.text
FROM sys.dm_exec_Connections c
CROSS APPLY sys.dm_exec_sql_text(c.most_recent_sql_Handle) s
WHERE session_id=58
这个查询返回最后执行的语句(也可以为正在进行的和活动的会话使用sys .dm_exec_requestsDMV,但由于示例现在没有执行任何内容,因此不会返回数据。)