Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Když sql Server přistupuje k databázovým objektům, kontrola přístupu se ukládá do mezipaměti v interní struktuře označované jako mezipaměť výsledků kontroly přístupu. V instanci SQL Serveru s vysokou mírou ad hoc provádění dotazů si můžete všimnout mnoha položek tokenů kontroly přístupu, které mají v sys.dm_os_memory_cache_entries zobrazení třídu 65535. Položky tokenu kontroly přístupu, které mají třídu 65535 představují zvláštní položky mezipaměti. Tyto položky mezipaměti se používají pro kumulativní kontroly oprávnění pro dotazy.
Můžete například spustit následující dotaz:
SELECT *
FROM t1
INNER JOIN t2
INNER JOIN t3;
V tomto případě SQL Server vypočítá kumulativní kontrolu oprávnění pro tento dotaz. Tato kontrola určuje, zda má uživatel SELECT oprávnění k t1, t2a t3. Tyto kumulativní výsledky kontroly oprávnění se vloží do položky tokenu kontroly přístupu a vloží se do úložiště mezipaměti kontroly přístupu s ID 65535. Pokud stejný uživatel znovu použije nebo spustí tento dotaz několikrát, SQL Server jednou znovu použije položku mezipaměti tokenu kontroly přístupu.
Pokud chcete optimalizovat použití této mezipaměti, měli byste zvážit použití různých technik parametrizace dotazů nebo převést časté vzory dotazů na použití uložených procedur.
Možnost access check cache bucket count řídí počet kontejnerů hash, které se používají pro mezipaměť výsledků kontroly přístupu.
Možnost access check cache quota řídí počet položek uložených v mezipaměti výsledků kontroly přístupu. Po dosažení maximálního počtu položek se nejstarší položky odeberou z mezipaměti výsledků kontroly přístupu.
Poznámky
Výchozí hodnoty značí 0 , že SQL Server tyto možnosti spravuje. Výchozí hodnoty se překládají na následující interní konfigurace.
SQL Server 2016 (13.x) a novější verze
| Nastavení konfigurace | Architektura serveru | Výchozí počet položek |
|---|---|---|
access check cache quota |
x64 | 1,024 |
access check cache bucket count |
x64 | 256 |
SQL Server 2008 (10.x) na SQL Server 2014 (12.x)
| Nastavení konfigurace | Architektura serveru | Výchozí počet položek |
|---|---|---|
access check cache quota |
x86 | 1,024 |
| x64 a IA-64 | 28,192,048 | |
access check cache bucket count |
x86 | 256 |
| x64 a IA-64 | 2,048 |
Ve výjimečných případech se výkon může zlepšit změnou těchto možností. Pokud se například používá příliš mnoho paměti, můžete chtít zmenšit velikost mezipaměti výsledků kontroly přístupu. Pokud při přepočtu oprávnění dojde k vysokému využití procesoru, zvyšte také velikost mezipaměti výsledků kontroly přístupu.
Tyto možnosti doporučujeme změnit pouze v případech, kdy je nasměruje oddělení zákaznické podpory Společnosti Microsoft. Pokud chcete změnit access check cache bucket count hodnoty a access check cache quota hodnoty, použijte poměr 1:4. Pokud například změníte access check cache bucket count hodnotu na 512, měli byste hodnotu změnit access check cache quota na 2048.