Configuração do servidor: access check cache

Aplica-se: SQL Server

Quando objetos de banco de dados são acessados pelo SQL Server, a verificação de acesso é armazenada em cache em uma estrutura interna chamada cache de resultado de verificação de acesso. Em uma instância do SQL Server com alta taxa de execução de consulta ad hoc, talvez você observe muitas entradas de token de verificação de acesso com uma classe de 65535 na exibição sys.dm_os_memory_cache_entries. Entradas de token de verificação de acesso com uma classe de 65535 representam entradas de cache especiais. Essas entradas de cache são usadas para verificações de permissão cumulativas para consultas.

Por exemplo, talvez você execute a seguinte consulta:

SELECT *
FROM t1
INNER JOIN t2
INNER JOIN t3;

Nesse caso, o SQL Server calcula uma verificação de permissão cumulativa para essa consulta. Essa verificação determina se um usuário tem permissões SELECT em t1, t2 e t3. Esses resultados de verificação de permissão cumulativa são inseridos em uma entrada de token de verificação de acesso e no repositório de cache de verificação de acesso com uma ID 65535. Se o mesmo usuário reutilizar ou executar essa consulta várias vezes, o SQL Server reutilizará a entrada de cache do token de verificação de acesso uma vez.

Para otimizar o uso desse cache, considere usar diferentes técnicas de parametrização de consulta ou converta padrões de consulta frequentes para usar procedimentos armazenados.

A opção access check cache bucket count controla o número de buckets de hash que são usados para o cache de resultados de verificação de acesso.

A opção access check cache quota controla o número de entradas que são armazenadas no cache de resultados de verificação de acesso. Quando o número máximo de entradas é alcançado, as entradas mais antigas são removidas do cache de resultados de verificação de acesso.

Comentários

Os valores padrão 0 indicam que o SQL Server está gerenciando essas opções. Os valores padrão são convertidos nas configurações internas a seguir.

SQL Server 2016 (13.x) e versões posteriores

Definição de configuração Arquitetura do servidor Número padrão de entradas
access check cache quota x64 1\.024
access check cache bucket count x64 256

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

Definição de configuração Arquitetura do servidor Número padrão de entradas
access check cache quota x86 1\.024
x64 e IA-64 28,192,048
access check cache bucket count x86 256
x64 e IA-64 2\.048

Em circunstâncias raras, o desempenho pode ser aprimorado alterando essas opções. Por exemplo, talvez você queira reduzir o tamanho do cache de resultados de verificação de acesso em caso de alto uso de memória. Ou, talvez você queira aumentar o tamanho do cache de resultados de verificação de acesso em caso de alto uso da CPU quando as permissões forem recalculadas.

Recomendamos a alteração dessas opções apenas quando orientadas pelos Serviços de Atendimento ao Cliente da Microsoft. Se você quiser alterar os valores de access check cache bucket count e access check cache quota, use uma proporção de 1:4. Por exemplo, se você alterar o valor access check cache bucket count para 512, deverá alterar o valor access check cache quota para 2048.