Condividi tramite


Accesso ai metadati, livelli di isolamento e hint di blocco

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 degli schemi delle informazioni e funzioni predefinite di creazione di metadati.

Motore di database di SQL Server rispetta internamente solo il livello di isolamento READ COMMITTED per l'accesso ai metadati. Se una transazione utilizza, ad esempio, un livello di isolamento SERIALIZABLE e nella transazione viene eseguito un tentativo di accedere ai metadati utilizzando le viste del catalogo o le funzioni predefinite di creazione di metadati, le 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. Questo comportamento si verifica perché ai metadati non viene applicato il controllo delle versioni. Per questo motivo, l'accesso agli elementi indicati di seguito nel livello di isolamento dello snapshot potrebbe non riuscire:

  • Vista del catalogo

  • Viste di compatibilità

  • Viste degli schemi delle informazioni

  • Funzioni predefinite di creazione dei metadati

  • Gruppo di stored procedure sp_help

  • SQL Server Procedure di catalogo di Native Client

  • Viste e funzioni a gestione dinamica

Per ulteriori informazioni sui livelli di isolamento, vedere SET TRANSACTION ISOLATION LEVEL (Transact-SQL).

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

Livello di isolamento

Supporto

Rispettato

READ UNCOMMITTED

No

Rispetto non garantito

READ COMMITTED

REPEATABLE READ

No

No

SNAPSHOT ISOLATION

No

No

SERIALIZABLE

No

No