Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Performanceverbesserungen, Diagnosen und Monitoring » Praktische Einführungen in die Anwendungsprofilerstellung » Praktische Einführung: Deadlocks diagnostizieren

 

Lektion 2: Erstellen eines Deadlocks und Aufzeichnen von Informationen darüber

Der Assistent für die Datenbankprotokollierung kann verwendet werden, um eine Sitzung für die Diagnoseprotokollierung zu erstellen. Die Protokollierungssitzung erfasst die Deadlock-Daten.

Tipp

In der praktischen Einführung in die Anwendungsprofilerstellung werden Protokollierungsinformationen in der Testdatenbank (app_profiling.db) gespeichert, bei der es sich um die in den praktischen Einführungen verwendete Datenbank handelt. Wenn Sie allerdings das Profil einer Datenbank mit großer Arbeitslast erstellen, ist es empfehlenswert, Protokollierungsdaten in einer separaten Datenbank zu speichern, um Auswirkungen auf die Performance der Produktionsdatenbank zu vermeiden.

 Erfassen von Deadlock-Daten
  1. Klicken Sie in Sybase Central auf Modus » Anwendungsprofil.

    Wenn der Assistent für die Anwendungsprofilerstellung eingeblendet wird, klicken Sie auf Abbrechen.

  2. Starten Sie den Assistenten für die Datenbankprotokollierung wie folgt:

    1. Kicken Sie im linken Fensterausschnitt auf app_profiling - DBA und anschließend auf Datei » Protokollierung.

    2. Auf der Seite Willkommen klicken Sie auf Weiter.

    3. Klicken Sie auf der Seite Protokollierungsdetailtiefe auf Hohe Detaillierung (bei kurzfristiger, intensiver Überwachung empfohlen) und anschließend auf Weiter.

    4. Auf der Seite Protokollierungsstufen bearbeiten klicken Sie auf Weiter.

    5. Klicken Sie auf der Seite Externe Datenbank erstellen auf Keine neue Datenbank erstellen. Vorhandene Datenbank soll benutzt werden und anschließend auf Weiter.

    6. Klicken Sie auf der Seite Protokollierung starten auf Protokollierungsdaten in dieser Datenbank speichern.

    7. Wenn Sie für die Menge der gespeicherten Protokollierungsdaten keine Grenzen festlegen möchten, klicken Sie auf Keine Beschränkung und anschließend auf Fertig stellen.

  3. Erstellen Sie den Deadlock wie folgt:

    1. Klicken Sie im linken Fensterausschnitt auf app_profiling - DBA und anschließend auf Datei » Interactive SQL öffnen.

      Interactive SQL wird gestartet und stellt eine Verbindung mit der Datenbank app_profiling.db her.

    2. Wiederholen Sie den vorherigen Schritt, um ein zweites Interactive SQL-Fenster zu öffnen.

    3. Führen Sie im ersten Interactive SQL-Fenster die folgende SQL-Anweisung aus:

      CALL "DBA"."proc_deadlock1"();
    4. Führen Sie im zweiten Interactive SQL Fenster innerhalb von 20 Sekunden nach der Ausführung der SQL-Anweisung im ersten Interactive SQL-Fenster die folgende SQL-Anweisung aus:

      CALL "DBA"."proc_deadlock2"();

      Nach ein paar Augenblicken wird ein ISQL-Fehler-Fenster angezeigt, das angibt, dass ein Deadlock erkannt wurde.

    5. Der Deadlock ist aufgetreten, da proc_deadlock1 Zugriff auf die Tabelle "deadlock2" benötigt, die von proc_deadlock2 gesperrt wurde. Gleichzeitig benötigt proc_deadlock2 Zugriff auf die Tabelle "deadlock1", die von proc_deadlock1 gesperrt wurde.

    6. Klicken Sie auf OK.

  4. SQL Anywhere hat die Deadlock-Vorgänge gestoppt und Sie können die Interactive SQL-Fenster schließen.

  5. Stoppen Sie in Sybase Central die Protokollierungssitzung, indem Sie im linken Fensterausschnitt auf die app_profiling - DBA-Verbindung klicken und anschließend auf Datei » Protokollierung » Protokollierung mit Speichern stoppen.

  6. Klicken Sie auf diesen Link, um mit der praktischen Einführung fortzufahren: Lektion 3: Daten der Verbindungsblockierungen überprüfen.

 Siehe auch