SQL सर्वर डेडलॉक ग्राफ - टेबल, पेज या रो लॉक?


10

अगर किसी डेडलॉक ग्राफ में ताला टेबल, पेज या पंक्ति स्तर पर है, तो क्या इसका कोई तरीका है? मेरे पास आइसोलेशन लेवल, (2) सहित ग्राफ से सभी आवश्यक जानकारी है, लेकिन मैं वास्तव में यह जानना चाहता हूं।

जो मदद कर सके उसे धन्यवाद!

जवाबों:


13

डेडलॉक ग्राफ एक्सएमएल में आपको कुछ इस तरह दिखाई देगा:

<deadlock-list>
  <deadlock victim="...">
    <process-list>
      <process id="..." ... waitresource="X:..."
...

Xदिलचस्प बिट, संभावित मान में रुचि रखते हैं कर रहे हैं:

  • RID पंक्ति आईडी (पंक्ति स्तर लॉकिंग) के लिए
  • PAG पेज लेवल लॉक के लिए
  • OBJECT(जो TABटेबल लॉक का संकेत देते हुए आगे योग्य हो सकता है )

प्रलेखन में भी कुछ अन्य प्रकार सूचीबद्ध हैं।


धन्यवाद, यह उपयोगी है। हालाँकि मेरे ग्राफ़ में मेरी 2 प्रक्रियाएँ हैं, जो विभिन्न पृष्ठों का उपयोग करते हुए दिखाई देती हैं: Waitresource = "RID: 21: 1: 2588: 0" Waitresource = "RID: 21: 1: 2699: 1" तो यदि वे अपने पृष्ठों का उपयोग कर रहे हैं , तो वे एक ही पंक्ति में परस्पर विरोधी नहीं हो सकते हैं, सही है? क्योंकि मैं इस क्वेरी पर एक (ROWLOCK) संकेत का उपयोग कर रहा हूं।
tuseau

2
यदि प्रक्रिया 1 2699 को पकड़े हुए है और 2588 चाहता है, और प्रक्रिया 2 2588 को पकड़े हुए है और 2699 चाहता है, तो यह गतिरोध होगा। याद रखें एक गतिरोध का तात्पर्य एक परिपत्र निर्भरता से है।
गयास
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.