Riduzione delle prestazioni in SQL Server quando si usa EFS per crittografare i file di database

Si applica a: SQL Server
Numero KB originale: 922121

Sintomi

Quando si usa Encrypting File System (EFS) per crittografare i file di database in SQL Server, le prestazioni di alcune funzionalità di SQL Server vengono ridotte. Ad esempio, le funzionalità read-ahead e checkpoint .

Causa

Questo problema si verifica perché le richieste di I/O asincrone da SQL Server vengono convertite in operazioni di I/O sincrone in un file di database crittografato EFS. Per altre informazioni, vedere L'I/O asincrona del disco viene visualizzato come sincrono in Windows . Durante l'operazione di I/O, il thread di lavoro attende il completamento dell'operazione di I/O. Quando il thread attende l'operazione di I/O, l'utilità di pianificazione di SQL Server verrà sospesa fino a quando il thread di lavoro corrente non continua. Pertanto, i thread di lavoro che rimangono nell'utilità di pianificazione saranno in sospeso fino a quando il primo thread di lavoro continua l'operazione di I/O. Tuttavia, per le operazioni di I/O asincrone, il thread richiede l'I/O e continua a eseguire altre attività.

Note

L'I/O asincrona sembra ancora essere sincrona a causa della compressione NTFS (New Technology File System). Il driver del file system non accederà ai file compressi in modo asincrono. Tutte le operazioni vengono invece eseguite in modo sincrono.

Soluzione alternativa

SQL Server offre molte tecnologie di crittografia, ad esempio Transparent Data Encryption (TDE), Always Encrypted e funzioni Transact-SQL di crittografia a livello di colonna. Prendere in considerazione l'uso di queste funzionalità di crittografia anziché EFS.

Note

Quando si usa EFS per crittografare un file di database, l'intero file di database viene crittografato, indipendentemente dai dati effettivi e dai metadati contenuti nel file di database. È anche possibile usare EFS in caso di possibile perdita di supporti fisici.

Riferimenti

Configurare un file system sicuro