Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
När SQL Server använder databasobjekt cachelagras åtkomstkontrollen i en intern struktur som kallas cachen för resultat av åtkomstkontroller. På en SQL Server-instans med en hög frekvens av ad hoc-frågekörningar kan du lägga märke till många poster för åtkomstkontrolltoken med klassen 65535 i vyn sys.dm_os_memory_cache_entries. Åtkomstkontrolltokenposter som har en klass på 65535 representerar särskilda cacheposter. Dessa cacheposter används för kumulativa behörighetskontroller för frågor.
Du kan till exempel köra följande fråga:
SELECT *
FROM t1
INNER JOIN t2
INNER JOIN t3;
I det här fallet beräknar SQL Server en kumulativ behörighetskontroll för den här frågan. Den här kontrollen avgör om en användare har SELECT behörighet för t1, t2och t3. Dessa resultat för kumulativ behörighetskontroll är inbäddade i en post för åtkomstkontrolltoken och infogas i cachelagret för åtkomstkontroll med ett ID på 65535. Om samma användare återanvänder eller kör den här frågan flera gånger återanvänder SQL Server åtkomstkontrolltokens cachepost en gång.
För att optimera användningen av den här cachen bör du överväga att använda olika tekniker för frågeparameterisering eller konvertera vanliga frågemönster till att använda lagrade procedurer.
Alternativet access check cache bucket count styr antalet hash-bucketar som används för resultatcachen för åtkomstkontroll.
Alternativet access check cache quota styr antalet poster som lagras i resultatcachen för åtkomstkontroll. När det maximala antalet poster har nåtts tas de äldsta posterna bort från resultatcachen för åtkomstkontroll.
Anmärkningar
Standardvärdena 0 för anger att SQL Server hanterar de här alternativen. Standardvärdena översätts till följande interna konfigurationer.
SQL Server 2016 (13.x) och senare versioner
| Konfigurationsinställning | Serverarkitektur | Förvalt antal poster |
|---|---|---|
access check cache quota |
x64 | 1,024 |
access check cache bucket count |
x64 | 256 |
SQL Server 2008 (10.x) till SQL Server 2014 (12.x)
| Konfigurationsinställning | Serverarkitektur | Standardantal poster |
|---|---|---|
access check cache quota |
x86 | 1,024 |
| x64 och IA-64 | 28,192,048 | |
access check cache bucket count |
x86 | 256 |
| x64 och IA-64 | 2,048 |
I sällsynta fall kan prestandan förbättras genom att de här alternativen ändras. Du kanske till exempel vill minska storleken på resultatcachen för åtkomstkontroll om för mycket minne används. Eller öka storleken på resultatcachen för åtkomstkontroll om du upplever hög CPU-användning när behörigheterna beräknas om.
Vi rekommenderar att du bara ändrar dessa alternativ när de dirigeras av Microsofts kundtjänst. Om du vill ändra access check cache bucket count värdena och access check cache quota använder du förhållandet 1:4. Om du till exempel ändrar värdet access check cache bucket count till 512bör du ändra värdet access check cache quota till 2048.