SqlConnection.ColumnEncryptionQueryMetadataCacheEnabled プロパティ


Always Encrypted が有効であるデータベースに対して実行されるパラメーター化されたクエリについて、クエリ メタデータのキャッシュが有効 (true) か無効 (false) かを示す値を取得または設定します。Gets or sets a value that indicates whether query metadata caching is enabled (true) or not (false) for parameterized queries running against Always Encrypted enabled databases. 既定値は true です。The default value is true.

 static property bool ColumnEncryptionQueryMetadataCacheEnabled { bool get(); void set(bool value); };
public static bool ColumnEncryptionQueryMetadataCacheEnabled { get; set; }
member this.ColumnEncryptionQueryMetadataCacheEnabled : bool with get, set
Public Shared Property ColumnEncryptionQueryMetadataCacheEnabled As Boolean


クエリ メタデータのキャッシュが有効な場合は true を返します。それ以外の場合は false です。Returns true if query metadata caching is enabled; otherwise false. 既定値は true です。true is the default.


パラメーター化されたクエリの場合、SqlClient はパラメーターのメタデータを SQL Server するラウンドトリップを作成し、暗号化する必要があるパラメーターとその方法 (どのキーとアルゴリズムを使用する必要があるか) を確認します。For parameterized queries, SqlClient makes a roundtrip to SQL Server for parameter metadata, to see which parameter it needs to encrypt and how (which keys and algorithms should be used). アプリケーションが同じクエリを複数回呼び出す場合は、そのたびに追加のラウンドトリップがサーバーに対して行われるため、アプリケーションのパフォーマンスが低下します。If the application calls the same query multiple times, an extra roundtrip is made to the server each time, which degrades application performance.

Columnencryptionquerymetadatacacheenabledが true に設定されている場合、同じクエリが複数回呼び出されると、サーバーへのラウンドトリップが1回だけ行われます。With ColumnEncryptionQueryMetadataCacheEnabled set to true, if the same query is called multiple times, the roundtrip to the server will be made only once. キャッシュには、2000クエリに設定された、構成可能な最大サイズのパラメーターがあります。The cache has a non-configurable Max size parameter that is set to 2000 queries.