Sdílet prostřednictvím


Konfigurace serveru: Kontrola přístupu do mezipaměti

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.

  • možnosti konfigurace serveru
  • sp_configure (Transact-SQL)