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 con EFS. Per altre informazioni , vedere L'I/O asincrono 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 SQL Server verrà sospesa fino al completamento del thread di lavoro corrente. Pertanto, i thread di lavoro che rimangono nell'utilità di pianificazione saranno in sospeso fino a quando il primo thread di lavoro non continua l'operazione di I/O. Tuttavia, per l'I/O asincrono, il thread richiede l'I/O e continua a eseguire altre attività.

Nota

L'I/O asincrono sembra ancora sincrono 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 rese sincrone.

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 invece di EFS.

Nota

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

Riferimenti

Configurare un file system sicuro