मैं सीखने की कोशिश कर रहा हूं कि SQL Server 2008 के डेडलॉक ग्राफ का विश्लेषण कैसे किया जाए , और मैं एक खाली <victim-list>
नोड के साथ प्रविष्टियों का एक बहुत कुछ पा रहा हूं । मुझे समझ नहीं आ रहा है कि ये प्रविष्टियाँ क्या दर्शाती हैं: अगर कोई पीड़ित नहीं है, तो मैं उस वेट्रेस को कैसे पहचान सकता हूं जो गतिरोध पैदा कर रहा है? इन प्रविष्टियों का क्या मतलब है?
यहाँ मैं देख रहा हूँ प्रविष्टियों का एक त्वरित उदाहरण है:
<deadlock-list>
<deadlock>
<victim-list />
<process-list>
<process id="processd2b6508" taskpriority="0" logused="10000" waittime="31" schedulerid="63" kpid="9104" status="suspended" spid="69" sbid="0" ecid="184" priority="0" trancount="0" lastbatchstarted="2012-07-30T01:10:45.550" lastbatchcompleted="2012-07-30T01:10:45.550" clientapp=".Net SqlClient Data Provider" hostname="XXXXXXX" hostpid="3648" isolationlevel="read committed (2)" xactid="30461033" currentdb="5" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128056">
<executionStack>
<frame procname="" line="1" sqlhandle="0x020000002340c50225c17d0eec9bf7c51129348edffd1c70" />
<!--About 2 more frame tags... -->
</executionStack>
<inputbuf />
</process>
<!-- 3 or so more process tags... -->
</process-list>
<resource-list>
<exchangeEvent id="Pipeb005eeba0" WaitType="e_waitPipeNewRow" nodeId="7">
<owner-list>
<owner id="processd23fdc8" />
</owner-list>
<waiter-list>
<waiter id="processd2b6508" />
</waiter-list>
</exchangeEvent>
<!-- 2 more exchangeEvents -->
</resource-list>
</deadlock>
</deadlock-list>
** संपादित करें ** जैसा कि अनुरोध किया गया है, यह एक प्रश्न है जिसे किसी प्रश्न की पहचान करने के लिए इसका उपयोग किया जाता है:
select sql_handle as Handle,
SUBSTRING(st.text, (qs.statement_start_offset/2)+1,
((CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset
END - qs.statement_start_offset)/2) + 1) AS Text
from sys.dm_exec_query_stats as qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st
where sql_handle = --0x04000D00E3572A56542E4601CE9E00010100001000000000