Livelli di isolamento delle transazioni

Si applica a:SQL ServerIstanza gestita di Azure SQL

SQL Server non garantisce che gli hint di blocco verranno rispettati nelle query che accedono ai metadati tramite viste del catalogo, viste di compatibilità, viste dello schema delle informazioni, funzioni predefinite di creazione di metadati.

Internamente, il motore di database di SQL Server rispetta solo il livello di isolamento per l'accesso READ COMMITTED ai metadati. Se una transazione ha un livello di isolamento, ad esempio SERIALIZABLE e all'interno della transazione, viene effettuato un tentativo di accedere ai metadati usando le viste del catalogo o le funzioni predefinite di creazione di metadati, tali query verranno eseguite fino a quando non vengono completate come READ COMMITTED. Nel livello di isolamento dello snapshot, tuttavia, l'accesso ai metadati potrebbe non riuscire a causa di operazioni DDL simultanee. Ciò è dovuto al fatto che i metadati non sono con versione. Per questo motivo, l'accesso agli elementi indicati di seguito nel livello di isolamento dello snapshot potrebbe non riuscire:

  • Visualizzazioni del catalogo
  • Viste di compatibilità
  • Viste degli schemi informativi
  • Funzioni predefinite di creazione dei metadati
  • sp_help gruppo di stored procedure
  • Stored procedure del catalogo SQL Server Native Client
  • Viste e funzioni a gestione dinamica

Per maggiori informazioni sui livelli di isolamento, vedi SET TRANSACTION ISOLATION LEVEL.

Nella tabella seguente è incluso un riepilogo sull'accesso ai metadati in livelli di isolamento diversi.

Livello di isolamento Supported Honored
READ UNCOMMITTED No Non garantito
READ COMMITTED Yes Yes
REPEATABLE READ No No
SNAPSHOT ISOLATION No No
SERIALIZABLE No No