Frage

bearbeitet: Warum sind die Berichterstattung von Sitzungen blockiert, aber warten mit PAGELATCH_* und nicht generationstypen Wartertypen?

Ich habe zuvor angenommen, dass SQL Server nur Blockierungssitzungen in der Spalte Blocking_Session_ID melden würde.Wenn die blockierten Sitzungen auf ein logisches Schloss warten und nicht alles andere wie ein LCK_M_.

 Geben Sie hier eingeben Beschreibung hier eingeben

War es hilfreich?

Lösung

Ich habe zuvor davon ausgegangen, dass SQL Server nur eine Blockierungssitzung in der Spalte Blocking_Session_ID melden würde, wenn die gesperrten Sitzungen auf ein logisches Schloss warten und nicht alles andere wie ein generationstabelles.

Sie verwenden den generationspoDicetagcode-Verfahren von Adam Machanic, keine eingebaute SQL Server-Anlage. Adams Verfahren meldet alle "interessante" Ursachen des Blockierens, nicht nur das Blockieren der Sperrung. Die zugrunde liegenden Informationen stammen aus verschiedenen Quellen, einschließlich sys.dm_exec_requests , und sys.dm_os_waiting_tasks .

Eine Aufgabe kann neben einem Schloss auf andere Dinge warten. Es kann beispielsweise in der Lage sein, eine exklusive Sperre in einer Zeile auf einer Seite zu erwerben, dann aber noch warten, um eine exklusive Seite latch zu erwerben (da andere Aufgaben dieselbe Seite in einem eingerastet haben inkompatibler Modus).

In Ihrem Beispiel befinden sich die exklusiven Seitenlatches generationstabetitagcode auf regulären Daten- oder Indexseiten, keine PFS-, GAM-, SGAM-, DCM- oder BCM-Seiten, wie durch die (*) am Ende des WAIT_INFO .

Sie finden die Dokumentation (Blog-Einträge) für PAGELATCH_* hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top