存取檢查快取伺服器組態選項
適用於:SQL Server
當資料庫物件是由 SQL Server 所存取時,存取檢查會在稱為 access check result cache 的內部結構中進行快取。 在具有高速特定查詢執行的 SQL Server 執行個體上,您可能會注意到 sys.dm_os_memory_cache_entries
檢視中有許多具有 65535 類別的存取檢查權杖項目。 具有 65535 類別的存取檢查權杖項目代表特殊快取項目。 這些快取項目可用於查詢的累積權限檢查。
例如,您可以執行下列查詢:select * from t1 join t2 join t3
。 在此情況下,SQL Server 會計算此查詢的累積權限檢查。 此檢查會判斷使用者是否有 t1
、t2
和 t3
的 SELECT 權限。 這些累積權限檢查結果會內嵌於存取檢查權杖項目,並插入識別碼為 65535 的存取檢查快取存放區。 如果同一位使用者重複使用或執行此查詢多次,SQL Server 會重複使用存取檢查權杖快取項目一次。
若要最佳化此快取的使用,您應該考慮使用各種查詢參數化技術,或將頻繁的查詢模式轉換成使用預存程序。
[存取檢查快取 Bucket 計數] 選項可控制用於存取檢查結果快取的雜湊貯體數目。
[存取檢查快取配額] 選項可控制儲存在存取檢查結果快取中的項目數。 達到最大項目數時,會從存取檢查結果快取中移除最舊的項目。
備註
預設值 0
表示 SQL Server 正在管理這些選項。 預設值會轉譯為下列內部組態。
SQL Server 2016 (13.x) 和更新版本
伺服器架構 | 預設項目數 | |
---|---|---|
Access check cache quota | x64 | 1,024 |
Access check cache bucket count | x64 | 256 |
SQL Server 2008 (10.0.x) 到 SQL Server 2014 (12.x)
伺服器架構 | 預設項目數 | |
---|---|---|
Access check cache quota | x86 | 1,024 |
x64 和 IA-64 | 28,192,048 | |
Access check cache bucket count | x86 | 256 |
x64 和 IA-64 | 2,048 |
在罕見的情況下,可以變更這些選項來提升效能。 例如,如果使用太多記憶體,您可能想要減少 access check result cache 的大小。 或者,如果在重新計算權限時出現高 CPU 使用率,請增加 access check result cache 的大小。
建議只在 Microsoft 客戶支援服務引導下變更這些選項。 如果您想要變更 access check cache bucket count 和 access check cache quota 值,請使用 1:4 的比率。 例如,如果將 access check cache bucket count 值變更為 512
,則應該將 access check cache quota 值變更為 2048
。
另請參閱
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: