Compartir a través de


Configuración del servidor: access check cache

Se aplica a: SQL Server

Cuando SQL Servertiene acceso a los objetos de base de datos, la comprobación del acceso se almacena en memoria caché en una estructura interna denominada memoria caché de resultados de comprobación de acceso. En una instancia de SQL Server que tenga una tasa elevada de ejecución de consultas ad hoc, es posible que observe muchas entradas de token de comprobación de acceso que tienen una clase de 65535 en la vista sys.dm_os_memory_cache_entries. Las entradas de token de comprobación de acceso que tienen una clase de 65535 representan entradas de caché especiales. Estas entradas de caché se usan para las comprobaciones acumulativas de permisos de las consultas.

Por ejemplo, puede ejecutar la siguiente consulta:

SELECT *
FROM t1
INNER JOIN t2
INNER JOIN t3;

En este caso, SQL Server calcula una comprobación acumulativa de permisos para esta consulta. Esta comprobación determina si un usuario tiene permisos SELECT en t1, t2 y t3. Estos resultados de comprobación acumulativa de permisos se insertan en una entrada de token de comprobación de acceso y en el almacén de caché de comprobación de acceso con un id. de 65535. Si el mismo usuario reutiliza o ejecuta esta consulta varias veces, SQL Server reutiliza la entrada de caché de tokens de comprobación de acceso una vez.

Para optimizar el uso de esta memoria caché, debe plantearse usar varias técnicas de parametrización de consulta o convertir patrones de consulta frecuentes a fin de usar procedimientos almacenados.

La opción access check cache bucket count controla el número de cubos de hash que se usan para la caché de resultados de comprobación de acceso.

La opción access check cache quota controla el número de entradas que se almacenan en la caché de resultados de comprobación de acceso. Cuando se alcanza el número máximo de entradas, las más antiguas se quitan de la caché de resultados de comprobación de acceso.

Comentarios

Los valores predeterminados de 0 indican que SQL Server está administrando estas opciones. Los valores predeterminados se traducen a las configuraciones internas siguientes.

SQL Server 2016 (13.x) y versiones posteriores

Opciones de configuración Arquitectura del servidor Número predeterminado de entradas
access check cache quota x64 1024
access check cache bucket count x64 256

SQL Server 2008 (10.x) a SQL Server 2014 (12.x)

Opciones de configuración Arquitectura del servidor Número predeterminado de entradas
access check cache quota x86 1024
x64 e IA-64 28,192,048
access check cache bucket count x86 256
x64 e IA-64 2 048

En circunstancias excepcionales, el rendimiento se puede mejorar cambiando estas opciones. Por ejemplo, puede que quiera reducir el tamaño de la caché de resultados de la comprobación de acceso si se usa demasiada memoria. O aumentar el tamaño de la caché de resultados de comprobación de acceso si experimenta un uso intensivo de la CPU cuando se vuelven a calcular los permisos.

Recomendamos cambiar estas opciones cuando lo indiquen los servicios de soporte al cliente de Microsoft. Si desea cambiar los valores access check cache bucket count y access check cache quota, use una relación de 1:4. Por ejemplo, si cambia el valor access check cache bucket count a 512, debe cambiar el valor access check cache quota a 2048.