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 Momentaufnahmeisolation 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 Momentaufnahmeisolation 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 zu Isolationsstufen finden Sie unter SET TRANSACTION ISOLATION LEVEL (Transact-SQL).
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 |
MOMENTAUFNAHMEN ISOLATION |
Nein |
Nein |
SERIALIZABLE |
Nein |
Nein |