Isolationsstufen, Sperrhinweise und Zugreifen auf Metadaten

In SQL Server werden Sperrhinweise in Abfragen, die über Katalogsichten, Kompatibilitätssichten, Informationsschemasichten oder Metadaten ausgebende integrierte Funktionen auf Metadaten zugreifen, nicht mit Sicherheit berücksichtigt.

Intern berücksichtigt SQL Server Database Engine (Datenbankmodul) beim Zugriff auf Metadaten nur die Isolationsstufe READ COMMITTED. Wenn eine Transaktion beispielsweise die Isolationsstufe SERIALIZABLE besitzt und innerhalb der Transaktion versucht wird, über Katalogsichten oder Metadaten ausgebende integrierte Funktionen auf Metadaten zuzugreifen, werden die entsprechenden Abfragen ausgeführt, bis sie als READ COMMITTED abgeschlossen sind. Bei der Snapshotisolation kann der Zugriff auf Metadaten jedoch aufgrund von gleichzeitigen DDL-Vorgängen einen Fehler erzeugen. Der Grund dafür ist, dass Metadaten nicht versionsspezifisch sind. Daher besteht das Risiko, dass bei der Snapshotisolation der Zugriff über folgende Sichten und Funktionen zu einem Fehler führt:

  • Katalogsichten

  • Kompatibilitätssichten

  • Informationsschemasichten

  • Metadaten ausgebende integrierte Funktionen

  • Die sp_help-Gruppe gespeicherter Prozeduren

  • SQL Server Native Client-Katalogprozeduren

  • Dynamische Verwaltungssichten (DMVs, Dynamic Management Views) und -funktionen

Weitere Informationen zur Snapshotisolation finden Sie unter Isolationsstufen im Datenbankmodul.

Die folgende Tabelle fasst den Zugriff auf Metadaten bei verschiedenen Isolationsstufen zusammen.

Isolationsstufe

Unterstützt

Berücksichtigt

READ UNCOMMITTED

Nein

Nicht mit Sicherheit berücksichtigt

READ COMMITTED

Ja

Ja

REPEATABLE READ

Nein

Nein

SNAPSHOT ISOLATION

Nein

Nein

SERIALIZABLE

Nein

Nein