Announcement

Collapse
No announcement yet.

Sperren lesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Sperren lesen

    Wie kann ich auf Basis von systemtabellen herausfinden wer was blockiert, also was ich suche ist ein select wo ich als Parameter Datenbank und/oder Tabelle eingeben kann und der liefert mir das Objekt (Software, NT/User) der die Sperre verursacht

  • #2
    Hi,

    schau mal in der Doku unter "sp_who" und "sp_lock"... vielleicht reicht Dir das ja schon...

    Gruß
    Thomas

    Comment


    • #3
      Originally posted by Thomas Rith View Post
      Hi,

      schau mal in der Doku unter "sp_who" und "sp_lock"... vielleicht reicht Dir das ja schon...

      Gruß
      Thomas

      die SP sp_who sp_who2 sowie sp_lock und sp_lock2 kenne ich

      die sp_lock2 ist eigentlich das was ich suche, leider liefert sie nicht immer für den Bunutzer als Ergebnis, manchmal steht das einfach null

      Comment


      • #4
        Hallo,

        Wie kann ich auf Basis von systemtabellen herausfinden wer was blockiert..
        im Fall des MS SQL Server 2005 kann man den folgenden Ablauf verwenden, um den SQL-Text zu ermittelt, der zur Blockade führt:

        Code:
        -- Sperren anzeigen
        SELECT
          request_session_id,
          resource_type,
          resource_database_id,
          resource_description,
          resource_associated_entity_id,
          request_mode,
          request_status 
        FROM sys.dm_tran_locks;
        
        
        -- Connection-Info: Werte aus request_session_id einsetzen
        SELECT * FROM sys.dm_exec_connections
        WHERE session_id IN(52, 56);
         
        
        -- Session-Info (1 Connection kann mehrere Sessions umfassen)
        SELECT * FROM sys.dm_exec_sessions
        WHERE session_id IN(52, 56);
        
         
        -- Blocking
        SELECT * FROM sys.dm_exec_requests
        WHERE blocking_session_id > 0;
        
        -- SQL-Anweisungtext abfordern
        SELECT session_id, text 
        FROM sys.dm_exec_connections
          CROSS APPLY sys.dm_exec_sql_text(most_recent_sql_handle) AS ST 
        WHERE session_id IN(52, 56);
        GO

        Comment


        • #5
          Hallo!

          Auch ich bin auf der Suche nach Locks, die zu einem Deadlock führen. In meiner Client-Anwendung erhalte ich diese "schöne" Fehlermeldung.
          Erhält man mit diesen Tabellen auch noch Informationen über die Sperren, wenn der SQL-Server die Situation behoben hat?
          Wie kann ich vorgehen (am besten ohne den ganzen Code zu ändern) um die Fehlerquelle zu finden?

          mfg
          Thomas

          Comment

          Working...
          X