Acceso a metadatos, niveles de aislamiento y sugerencias de bloqueo
SQL Server no garantiza que se respeten las sugerencias de bloqueo en consultas que tengan acceso a metadatos por medio de vistas de catálogo, vistas de compatibilidad, vistas del esquema de información y funciones integradas de emisión de metadatos.
Internamente, SQL Server Database Engine (Motor de base de datos de SQL Server) sólo respeta el nivel de aislamiento READ COMMITTED para el acceso a metadatos. Si una transacción tiene un nivel de aislamiento que es, por ejemplo, SERIALIZABLE, y en la transacción se intenta obtener acceso a metadatos mediante vistas de catálogo o funciones integradas de emisión de metadatos, dichas consultas se ejecutan hasta que finalizan como READ COMMITTED. Sin embargo, en el aislamiento de instantánea, puede que el acceso a metadatos genere un error debido a operaciones DDL simultáneas. Esto se debe a que los metadatos no admiten versiones. Por tanto, puede que en el aislamiento de instantánea se genere un error al obtener acceso a:
Vistas de catálogo
Vistas de compatibilidad
Vistas de esquema de información
Funciones integradas de emisión de metadatos
Grupo de procedimientos almacenados sp_help
Procedimientos de catálogo de SQL Server Native Client
Funciones y vistas de administración dinámica
Para obtener más información acerca del aislamiento de instantánea, vea Niveles de aislamiento del motor de base de datos.
En la siguiente tabla se proporciona un resumen de acceso a metadatos en distintos niveles de aislamiento.
Nivel de aislamiento |
Compatible |
Respetado |
---|---|---|
READ UNCOMMITTED |
No |
Sin garantizar |
READ COMMITTED |
Sí |
Sí |
REPEATABLE READ |
No |
No |
SNAPSHOT ISOLATION |
No |
No |
SERIALIZABLE |
No |
No |