EFS を使用してデータベース ファイルを暗号化する場合の SQL Server のパフォーマンスの低下

適用対象: SQL Server
元の KB 番号: 922121

現象

暗号化ファイル システム (EFS) を使用して SQL Server のデータベース ファイルを暗号化すると、一部の SQL Server 機能のパフォーマンスが低下します。 たとえば、 先読みcheckpoint 機能などです。

原因

この問題は、SQL Server からの非同期 I/O 要求が EFS で暗号化されたデータベース ファイルに対する同期 I/O 操作に変換されるために発生します。 詳細については、「 Asynchronous disk I/O appears as synchronous on Windows 」を参照してください。 I/O 操作中、ワーカー スレッドは I/O 操作が完了するまで待機します。 スレッドが I/O 操作を待機すると、現在のワーカー スレッドが続行されるまで、SQL Server スケジューラは中断されます。 そのため、スケジューラ上に残っているワーカー スレッドは、最初のワーカー スレッドが I/O 操作を続行するまで保留中になります。 ただし、非同期 I/O の場合、スレッドは I/O を要求し、他のタスクの実行を続行します。

Note

New Technology File System (NTFS) 圧縮のため、非同期 I/O は同期的に見えます。 ファイル システム ドライバーは、圧縮ファイルに非同期的にアクセスしません。 代わりに、すべての操作が同期的に行われます。

回避策

SQL Server には、 Transparent Data Encryption (TDE)Always Encryptedcolumn レベルの暗号化 Transact-SQL 関数など、多くの暗号化テクノロジが用意されています。 EFS の代わりに、これらの 暗号化 機能を使用することを検討してください。

Note

EFS を使用してデータベース ファイルを暗号化すると、データベース ファイルに含まれる実際のデータとメタデータに関係なく、データベース ファイル全体が暗号化されます。 物理メディアが失われる可能性がある場合は、EFS を使用することもできます。

関連情報

セキュリティで保護されたファイル システムを構成する