SQL सर्वर 2008 में गतिरोध में शामिल प्रक्रियाओं और प्रश्नों की पहचान करने के कई तरीके हैं।
-
यदि गतिरोध को पुन:उत्पन्न करना आसान है, तो आवृत्ति अधिक है और आप SQL सर्वर को प्रोफाइल कर सकते हैं (प्रोफाइलर सक्षम होने पर आपके पास सर्वर पर पहुंच और प्रदर्शन लागत है) SQL Profiler का उपयोग करके आपको गतिरोध का अच्छा चित्रमय दृश्य मिलेगा। इस पृष्ठ में आपकी सभी जानकारी है गतिरोध ग्राफ़ का उपयोग करने की आवश्यकता हैhttp://sqlmag.com/ डेटाबेस-प्रदर्शन-ट्यूनिंग/एकत्रीकरण-गतिरोध-सूचना-गतिरोध-ग्राफ
-
अधिकांश समय गतिरोध को पुन:प्रस्तुत करना कठिन होता है, या वे उत्पादन वातावरण में होते हैं जहां हम प्रोफाइलर को इसमें संलग्न नहीं करना चाहते हैं और प्रदर्शन को प्रभावित करते हैं।
गतिरोध उत्पन्न करने के लिए मैं इस क्वेरी का उपयोग करूंगा:
SELECT
xed.value('@timestamp', 'datetime') as Creation_Date,
xed.query('.') AS Extend_Event
FROM
(
SELECT CAST([target_data] AS XML) AS Target_Data
FROM sys.dm_xe_session_targets AS xt
INNER JOIN sys.dm_xe_sessions AS xs
ON xs.address = xt.event_session_address
WHERE xs.name = N'system_health'
AND xt.target_name = N'ring_buffer'
) AS XML_Data
CROSS APPLY Target_Data.nodes('RingBufferTarget/event[@name="xml_deadlock_report"]') AS XEventData(xed)
ORDER BY Creation_Date DESC
मैं गतिरोध को ठीक करने के लिए (NOLOCK) का उपयोग करने की दिशा में नहीं जाऊंगा। वह फिसलन ढलान है और मूल समस्या को छिपा रहा है।