Partage via


Configuration du serveur : access check cache

S’applique à : SQL Server

Lorsque SQL Serveraccède aux objets de base de données, la vérification de l'accès est mise en cache dans une structure interne appelée le cache de résultat de la vérification d'accès. Sur une instance de SQL Server qui a un taux élevé d’exécution de requête ad hoc, vous pouvez remarquer de nombreuses entrées de jeton de vérification d’accès qui ont une classe de 65535 dans la vue sys.dm_os_memory_cache_entries. Les entrées de jeton de vérification d’accès dont la classe est 65535 représentent des entrées de cache spéciales. Ces entrées de cache sont utilisées pour les vérifications d’autorisations cumulatives pour les requêtes.

Vous pouvez par exemple exécuter la requête suivante :

SELECT *
FROM t1
INNER JOIN t2
INNER JOIN t3;

Dans ce cas, SQL Server calcule une vérification d’autorisation cumulative pour cette requête. Cette vérification détermine si un utilisateur dispose d’autorisations SELECT sur t1, t2 et t3. Ces résultats de vérification d’autorisation cumulative sont incorporés dans une entrée de jeton de vérification d’accès et sont insérés dans le magasin de cache de vérification d’accès avec l’ID 65535. Si le même utilisateur réutilise ou exécute cette requête plusieurs fois, SQL Server réutilise l’entrée du cache du jeton de vérification d’accès une seule fois.

Pour optimiser l’utilisation de ce cache, vous devez envisager d’utiliser différentes techniques de paramétrage de requête ou de convertir des modèles de requête fréquents pour utiliser des procédures stockées.

L’option access check cache bucket count contrôle le nombre de compartiments de hachage utilisés pour le cache des résultats de la vérification d’accès.

L’option access check cache quota contrôle le nombre d’entrées stockées dans le cache des résultats de la vérification d’accès. Quand le nombre maximal d’entrées est atteint, les entrées les plus anciennes sont supprimées du cache des résultats de la vérification d’accès.

Notes

Les valeurs par défaut 0 indiquent que SQL Server gère ces options. Les valeurs par défaut se traduisent par les configurations internes suivantes.

SQL Server 2016 (13.x) et versions ultérieures

Paramètre de configuration Architecture du serveur Nombre d’entrées par défaut
access check cache quota x64 1 024
access check cache bucket count x64 256

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

Paramètre de configuration Architecture du serveur Nombre d’entrées par défaut
access check cache quota x86 1 024
x64 et IA-64 28 192 048
access check cache bucket count x86 256
x64 et IA-64 2 048

Dans de rares circonstances, la modification de ces options peut améliorer les performances. Par exemple, vous pouvez réduire la taille du cache des résultats de la vérification d’accès si la quantité de mémoire utilisée est trop importante. Vous pouvez également augmenter la taille du cache des résultats de la vérification d’accès si vous constatez une utilisation intensive du processeur quand les autorisations sont recalculées.

Nous vous conseillons de ne modifier ces options que sur recommandation des services de support technique Microsoft. Si vous souhaitez modifier les valeurs access check cache bucket count et access check cache quota, utilisez un ratio de 1:4. Par exemple, si vous modifiez la valeur access check cache bucket count en 512, vous devez remplacer la valeur access check cache quota par 2048.