Sämre prestanda i SQL Server när du använder EFS för att kryptera databasfiler

Gäller för: SQL Server
Ursprungligt KB-nummer: 922121

Symptom

När du använder EFS (Encrypting File System) för att kryptera databasfiler i SQL Server minskar prestandan för vissa SQL Server-funktioner. Till exempel funktionerna read-ahead och checkpoint .

Orsak

Det här problemet beror på att asynkrona I/O-begäranden från SQL Server konverteras till synkrona I/O-åtgärder i en EFS-krypterad databasfil. Mer information finns i Asynkron disk-I/O visas som synkron i Windows . Under I/O-åtgärden väntar arbetstråden tills I/O-åtgärden har slutförts. När tråden väntar på I/O-åtgärden pausas SQL Server-schemaläggaren tills den aktuella arbetstråden fortsätter. Därför väntar de arbetstrådar som finns kvar i schemaläggaren tills den första arbetstråden fortsätter I/O-åtgärden. Men för asynkrona I/O begär tråden I/O och fortsätter att utföra andra uppgifter.

Kommentar

Asynkron I/O verkar fortfarande vara synkron på grund av NTFS-komprimering (New Technology File System). Filsystemdrivrutinen kommer inte åt komprimerade filer asynkront. I stället görs alla åtgärder synkrona.

Lösning

SQL Server erbjuder många krypteringstekniker, till exempel transparent datakryptering (TDE), Always Encrypted och krypteringsfunktioner på kolumnnivå Transact-SQL. Överväg att använda dessa krypteringsfunktioner i stället för EFS.

Kommentar

När du använder EFS för att kryptera en databasfil krypteras hela databasfilen, oavsett de faktiska data och metadata som finns i databasfilen. Du kan också använda EFS vid eventuell förlust av fysiska medier.

Referenser

Konfigurera ett säkert filsystem