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

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

現象

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

原因

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

注:

新しいテクノロジ ファイル システム (NTFS) の圧縮により、非同期 I/O は同期的に表示されます。 ファイル システム ドライバーは、圧縮されたファイルに非同期的にアクセスしません。 代わりに、すべての操作が同期されます。

回避策

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

注:

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

関連情報

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