Delen via


Serverconfiguratie: toegangscontrolecache

Van toepassing op:SQL Server

Wanneer databaseobjecten worden geopend door SQL Server, wordt de toegangscontrole in de cache opgeslagen in een interne structuur, de resultatencache voor toegangscontrole genoemd. Op een exemplaar van SQL Server met een hoge snelheid van ad-hocquery-uitvoering ziet u mogelijk veel vermeldingen voor toegangscontroletoken met een klasse 65535 in de sys.dm_os_memory_cache_entries weergave. Toegangstokenvermeldingen met een klasse 65535 vertegenwoordigen speciale cachevermeldingen. Deze cachevermeldingen worden gebruikt voor cumulatieve machtigingscontroles voor query's.

U kunt bijvoorbeeld de volgende query uitvoeren:

SELECT *
FROM t1
INNER JOIN t2
INNER JOIN t3;

In dit geval berekent SQL Server een cumulatieve machtigingscontrole voor deze query. Met deze controle wordt bepaald of een gebruiker machtigingen heeft SELECT voor t1, t2en t3. Deze cumulatieve machtigingscontroleresultaten worden ingesloten in een toegangscontroletokenvermelding en worden ingevoegd in het cachearchief voor toegangscontrole met een id van 65535. Als dezelfde gebruiker deze query meerdere keren opnieuw gebruikt of uitvoert, gebruikt SQL Server de vermelding van de toegangstokencache één keer opnieuw.

Als u het gebruik van deze cache wilt optimaliseren, moet u overwegen verschillende technieken voor queryparameterisatie te gebruiken of veelgebruikte querypatronen te converteren om opgeslagen procedures te gebruiken.

De access check cache bucket count optie bepaalt het aantal hash-buckets dat wordt gebruikt voor de cache met resultaten van de toegangscontrole.

Met de access check cache quota optie bepaalt u het aantal vermeldingen dat is opgeslagen in de resultatencache van de toegangscontrole. Wanneer het maximum aantal vermeldingen is bereikt, worden de oudste vermeldingen verwijderd uit de cache met resultaten van de toegangscontrole.

Opmerkingen

De standaardwaarden geven 0 aan dat SQL Server deze opties beheert. De standaardwaarden worden omgezet in de volgende interne configuraties.

SQL Server 2016 (13.x) en latere versies

Configuratie-instelling Serverarchitectuur Standaardaantal vermeldingen
access check cache quota x64 1,024
access check cache bucket count x64 256

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

Configuratie-instelling Serverarchitectuur Standaardaantal vermeldingen
access check cache quota x86 1,024
x64 en IA-64 28,192,048
access check cache bucket count x86 256
x64 en IA-64 2,048

In zeldzame gevallen kunnen de prestaties worden verbeterd door deze opties te wijzigen. U kunt bijvoorbeeld de grootte van de resultatencache voor toegangscontrole verkleinen als er te veel geheugen wordt gebruikt. Of vergroot de grootte van de resultatencache van de toegangscontrole als u een hoog CPU-gebruik ondervindt wanneer machtigingen opnieuw worden berekend.

We raden u aan deze opties alleen te wijzigen wanneer deze worden doorgestuurd door de klantenservice van Microsoft. Als u de access check cache bucket count en access check cache quota waarden wilt wijzigen, gebruikt u een verhouding van 1:4. Als u bijvoorbeeld de access check cache bucket count waarde 512wijzigt in , moet u de access check cache quota waarde wijzigen in 2048.