Wie identifiziere ich einen Deadlock in SQL Azure?

8

Ich habe eine Windows Azure-Rolle, die aus zwei Instanzen besteht. Hin und wieder scheitert eine Transaktion mit einem SqlException mit dem folgenden Text

  

Transaktion (Prozess-ID N) wurde bei Sperrressourcen mit einem anderen Prozess blockiert und wurde als Deadlock-Opfer ausgewählt. Führen Sie die Transaktion erneut aus.

Nun habe ich eine Weile gegoogelt und diesen Beitrag zum Identifizieren von Deadlocks mithilfe von SQL Server-Protokollen.

Das Problem ist ...

Wie mache ich das in SQL Azure? Welche Tools verwende ich, um auf die Interna von SQL Azure zuzugreifen und genügend Daten zu erhalten?

    
sharptooth 03.11.2011, 11:10
quelle

3 Antworten

4

Die Überwachung von SQL Azure ist eingeschränkter als SQL Server, aber die Tools werden immer verfügbarer, damit Sie darunter sehen können:

Ссылка

    
Igorek 03.11.2011, 18:41
quelle
2

Führen Sie die folgende Abfrage für die Datenbank "Master" in der SQL Azure-Datenbank

aus %Vor%

Bei dieser Abfrage ist ein Leistungsproblem aufgetreten. Wenn das Zeitlimit überschritten wird, versuchen Sie es mit

%Vor%

Beide Abfragen haben detaillierte Daten im XML-Format, die sich auf die ausgeführten Prozesse beziehen. Viel Glück!

    
Dhanuka777 03.03.2016 03:46
quelle
0

Die Azure SQL-Datenbank unterstützt nun zwei Methoden zum Abrufen von Deadlock-XML-Berichten. Sie können eine db-scope XE-Sitzung mit dem Ereignis database_xml_deadlock_report erstellen, um sie selbst zu verfolgen, oder Sie können den Aufruf sys.fn_xe_telemetry_blob_target_read_file von der früheren Antwort ändern, um "dl" anstelle von "el" zu verwenden. Deadlocks werden jetzt in ihre eigene Datei geroutet, anstatt mit Anmeldeereignissen vermischt zu werden.

Dieser MSDN-Artikel enthält die neuesten Informationen.

    
shueybubbles 24.06.2016 16:58
quelle