access check cache サーバー構成オプション
適用対象: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 権限を持っているかどうかを判定します。 これらの累積的なアクセス許可チェックの結果は、アクセス チェック トークン エントリに埋め込まれており、ID が 65535 のアクセス チェック キャッシュ ストアに挿入されます。 同じユーザーがこのクエリを複数回再利用または実行する場合、SQL Server ではそのアクセス チェック トークン キャッシュ エントリを 1 回再利用します。
このキャッシュの使用を最適化するには、さまざまなクエリ パラメーター化手法の使用するか、よくあるクエリ パターンをストアド プロシージャを使用するように変換することを検討してください。
access check cache bucket count オプションは、access check result cache に使用されるハッシュ バケットの数を制御します。
access check cache quota オプションは、access check result cache に格納されるエントリの数を制御します。 エントリが最大数に達すると、最も古いエントリが access check result cache から削除されます。
注釈
既定値は 0
で、SQL Server がこれらのオプションを管理していることを示します。 既定値は次の内部構成に変換されます。
SQL Server 2016 (13.x) 以降
サーバー アーキテクチャ | 既定のエントリ数 | |
---|---|---|
キャッシュ クォータへのアクセス確認 | X64 | 1,024 |
キャッシュ バケット カウントへのアクセス確認 | X64 | 256 |
SQL Server 2008 (10.0.x) から SQL Server 2014 (12.x) まで
サーバー アーキテクチャ | 既定のエントリ数 | |
---|---|---|
アクセス チェック キャッシュ クォータ | x86 | 1,024 |
x64 と IA-64 | 28,192,048 | |
アクセス チェック キャッシュ バケット カウント | x86 | 256 |
x64 と IA-64 | 2,048 |
まれに、これらのオプションを変更することによってパフォーマンスが向上する場合があります。 たとえば、メモリの使用率が高すぎる場合は、access check result cache のサイズを小さくした方がよいでしょう。 または、アクセス許可の再計算時に CPU の使用率が高い場合、access check result cache のサイズを大きくします。
これらのオプションはマイクロソフト カスタマー サポート サービスから指示があった場合にのみ変更することをお勧めします。 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 の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示