作为开发人员,我经常使用 SQL Profiler。这是一个很好的调试工具,既可以跟踪我的代码在做什么,也可以分析性能问题。
但是我一直在我的开发环境中使用它,并且以一种非常可控的方式使用它。
SQL Profiler 能否在生产环境中实际使用?
我首先担心的是它会降低性能。
我的第二个担忧是,因为它正在生产中,您不会触发有趣的操作本身。您必须让分析器长时间运行,然后分析结果。结果集会变得太笨拙吗?(占用太多磁盘空间,查询太难)。
有人在生产中使用 SQL Profiler 吗?
有没有办法破译死锁图中的锁是表级、页级还是行级?我从图中获得了我需要的所有信息,包括隔离级别 (2),但我也很想知道这一点。
感谢任何能提供帮助的人!
我收到了一个请求,要求检查 2008 sp3 服务器(10.0.5500.0 - 企业版(64 位))上的一些错误,看看我是否能找到之前发生的死锁。
Traceflag 1222 未启用,服务器所有者也不想启用它。我使用了扩展事件并使用以下查询提取了一些信息:
SELECT CAST(event_data.value('(event/data/value)[1]',
'varchar(max)') AS XML) AS DeadlockGraph
FROM ( SELECT XEvent.query('.') AS event_data
FROM ( -- Cast the target_data to XML
SELECT CAST(target_data AS XML) AS TargetData
FROM sys.dm_xe_session_targets st
JOIN sys.dm_xe_sessions s
ON s.address = st.event_session_address
WHERE name = 'system_health'
AND target_name = 'ring_buffer'
) AS Data -- Split out the Event Nodes
CROSS APPLY TargetData.nodes('RingBufferTarget/
event[@name="xml_deadlock_report"]')
AS XEventData ( XEvent )
) AS tab ( event_data )
Run Code Online (Sandbox Code Playgroud)
我收到了很多信息,看起来像这样: …