Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

DeadLock: Ερμηνεία του κόμβου ενός xml-Deadlock Graph

Îåêßíçóå áðü ôï ìÝëïò sql100. Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 16-02-2007, 12:09. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  15-02-2007, 14:26 25056

    DeadLock: Ερμηνεία του κόμβου ενός xml-Deadlock Graph

    Κάνω capture τα deadLocks (DeadLock Graph event) του SQL Server 2005 με profiler. Συνήθως έπαιρνα ένα xml και με βάση οδηγίες που δίνονται εδώ ερμήνευα τα deadlocks αναλύοντας τα processes του <Process list>. Στη συνέχει,στον κόμβο <resource list>, έβλεπα ποιος lock-άρει ποιό resource και για ποιό resource περιμένει  . Για πρώτη φορά δεν μπορώ να ερμηνέυσω το <Resource List>.
    H <process list> έχει 3 processes. Η πρώτη κάνει lock κάποια page για την οποία περιμένουν οι άλλες δύο. Αυτό φαίνεται και στον πρώτο κόμβο του <Resource List> . Όμως ο δεύτερος κόμβος του <Resource List> είναι λίγο περίεργος ( θα περίμενα να λέει ότι κάποια από τις άλλες δύο processes έχουν κάνει lock κάποια page για την οποία περιμένει η πρώτη)
    Υπάρχει κάποιος που θα μπορούσε να δώσει κάποια ερμηνεία? Τι είναι ο <exchangeEvent> κόμβος? τα events e_waitNone  , e_waitPipeGetRow τι ακριβώς είναι?

    <resource-list>
    - <pagelock fileid="1" pageid="38935" dbid="7" objectname="Table1" id="lock1ed3f080" mode="U" associatedObjectId="72057594067025920">
    - <owner-list>
      <owner id="process629e28" mode="U" />
      </owner-list>
    - <waiter-list>
      <waiter id="process6292e8" mode="U" requestType="wait" />
      <waiter id="process629888" mode="U" requestType="wait" />
      </waiter-list>
      </pagelock>
    - <exchangeEvent id="port3c9a728" nodeId="7">
    - <owner-list>
      <owner event="e_waitNone" type="producer" id="process629888" />
      </owner-list>
    - <waiter-list>
      <waiter event="e_waitPipeGetRow" type="consumer" id="process629e28" />
      </waiter-list>
      </exchangeEvent>
     </resource-list>

  •  15-02-2007, 17:17 25062 σε απάντηση της 25056

    Απ: DeadLock: Ερμηνεία του κόμβου ενός xml-Deadlock Graph

    Μπορείς να παραθέσεις ή να βάλεις σε attachment ολόκληρο το XML graph ?


    Vir prudens non contra ventum mingit
  •  16-02-2007, 11:35 25101 σε απάντηση της 25062

    Απ: DeadLock: Ερμηνεία του κόμβου ενός xml-Deadlock Graph

    Έκανα replace τα ονόματα του πίνακα , της stored procedure και του server

    - <Column id="1" name="TextData">

    - <deadlock-list>

    - <deadlock victim="process6292e8">

    - <process-list>

    - <process id="process6292e8" taskpriority="0" logused="0" waitresource="PAGE: 7:1:38935" waittime="6203" ownerId="162937215" transactionname="UPDATE" lasttranstarted="2007-02-15T10:09:37.810" XDES="0x3f266b8" lockMode="U" schedulerid="1" kpid="7004" status="suspended" spid="60" sbid="0" ecid="1" priority="0" transcount="0" lastbatchstarted="2007-02-15T10:09:37.810" lastbatchcompleted="2007-02-15T10:09:37.810" clientapp=".Net SqlClient Data Provider" hostname="SERVER1" hostpid="0" isolationlevel="read committed (2)" xactid="162937215" currentdb="7" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128056">

    - <executionStack>

      <frame procname="StoredProc1" line="11" stmtstart="626" sqlhandle="0x03000700cf4d9e23cffed8004e9700000100000000000000">UPDATE Table1 SET LOCAL_DELIVERY_TIMESTAMP = @DELIVERY_TIMESTAMP, RECEIVER_ADDRESS = @RECEIVER_ADDRESS, RECEIPT_CONFIRMED = 1 WHERE BATCHID = @BATCHID</frame>

      </executionStack>

      <inputbuf />

      </process>

    - <process id="process629888" taskpriority="0" logused="0" waitresource="PAGE: 7:1:38935" waittime="5593" ownerId="162937206" transactionname="UPDATE" lasttranstarted="2007-02-15T10:09:37.780" XDES="0x3ea9900" lockMode="U" schedulerid="1" kpid="6112" status="suspended" spid="52" sbid="0" ecid="1" priority="0" transcount="0" lastbatchstarted="2007-02-15T10:09:37.780" lastbatchcompleted="2007-02-15T10:09:37.780" clientapp=".Net SqlClient Data Provider" hostname="SERVER1" hostpid="444" isolationlevel="read committed (2)" xactid="162937206" currentdb="7" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128056">

    - <executionStack>

      <frame procname="StoredProc1" line="11" stmtstart="626" sqlhandle="0x03000700cf4d9e23cffed8004e9700000100000000000000">UPDATE Table1 SET LOCAL_DELIVERY_TIMESTAMP = @DELIVERY_TIMESTAMP, RECEIVER_ADDRESS = @RECEIVER_ADDRESS, RECEIPT_CONFIRMED = 1 WHERE BATCHID = @BATCHID</frame>

      </executionStack>

      <inputbuf />

      </process>

    - <process id="process629e28" taskpriority="0" logused="20007" waittime="4875" schedulerid="1" kpid="6940" status="suspended" spid="52" sbid="0" ecid="0" priority="0" transcount="2" lastbatchstarted="2007-02-15T10:09:37.780" lastbatchcompleted="2007-02-15T10:09:37.780" lastattention="2007-02-15T10:08:53.593" clientapp=".Net SqlClient Data Provider" hostname="SERVER1" hostpid="444" loginname="sa" isolationlevel="read committed (2)" xactid="162937206" currentdb="7" lockTimeout="4294967295" clientoption1="671088672" clientoption2="128056">

    - <executionStack>

      <frame procname="StoredProc1" line="11" stmtstart="626" sqlhandle="0x03000700cf4d9e23cffed8004e9700000100000000000000">UPDATE Table1 SET LOCAL_DELIVERY_TIMESTAMP = @DELIVERY_TIMESTAMP, RECEIVER_ADDRESS = @RECEIVER_ADDRESS, RECEIPT_CONFIRMED = 1 WHERE BATCHID = @BATCHID</frame>

      </executionStack>

      <inputbuf>Proc [Database Id = 7 Object Id = 597577167]</inputbuf>

      </process>

      </process-list>

    - <resource-list>

    - <pagelock fileid="1" pageid="38935" dbid="7" objectname="wsf.Table1" id="lock1ed3f080" mode="U" associatedObjectId="72057594067025920">

    - <owner-list>

      <owner id="process629e28" mode="U" />

      </owner-list>

    - <waiter-list>

      <waiter id="process6292e8" mode="U" requestType="wait" />

      <waiter id="process629888" mode="U" requestType="wait" />

      </waiter-list>

      </pagelock>

    - <exchangeEvent id="port3c9a728" nodeId="7">

    - <owner-list>

      <owner event="e_waitNone" type="producer" id="process629888" />

      </owner-list>

    - <waiter-list>

      <waiter event="e_waitPipeGetRow" type="consumer" id="process629e28" />

      </waiter-list>

      </exchangeEvent>

      </resource-list>

      </deadlock>

      </deadlock-list>

      </Column>

     


  •  16-02-2007, 12:04 25104 σε απάντηση της 25101

    Απ: DeadLock: Ερμηνεία του κόμβου ενός xml-Deadlock Graph

    Κάτι δεν πάει καλά με αυτό γιατί όταν το αποθηκεύω ως XDL δεν ανοίγει από το Management Studio.


    Vir prudens non contra ventum mingit
  •  16-02-2007, 12:09 25105 σε απάντηση της 25104

    Απ: DeadLock: Ερμηνεία του κόμβου ενός xml-Deadlock Graph

    Αυτό που δίνεις είναι υποθέτω κομμάτι του trace και όχι το xdl αρχείο ενός XML Deadlock Graph. Δες στο "How to: Save Deadlock Graphs (SQL Server Profiler)" για το πω΄ς να σώσεις ξεχωριστά τα deadlock graphs, έτσι ώστε να μπορούν να διαβαστούν από άλλους
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems