Descrizione del supporto per i database SQL Server nei volumi compressi

Questo articolo descrive il comportamento di archiviazione dei file di database di SQL Server nelle unità compresse.

Versione originale del prodotto: SQL Server
Numero KB originale: 231347

Riepilogo

SQL Server database non sono supportati in volumi compressi NTFS o FAT, tranne in circostanze speciali per SQL Server 2005 e versioni successive. Un volume compresso non garantisce scritture allineate al settore, che sono necessarie per garantire il ripristino transazionale in alcune circostanze.

Per SQL Server 2005 e versioni successive, l'archiviazione dei file di database nelle unità compresse si comporta come segue:

  • Se il file di dati appartiene a un filegroup di sola lettura, il file è consentito.

  • Se il file di dati appartiene a un database di sola lettura, il file è consentito.

  • Se il file di log delle transazioni appartiene a un database di sola lettura, il file è consentito.

  • Se si tenta di visualizzare un database di lettura/scrittura con file in un'unità compressa, SQL Server genera l'errore seguente:

    Msg 5118, Livello 16, Stato 2, Riga 1 Il file "<file_name>" è compresso ma non si trova in un database o un filegroup di sola lettura. Il file deve essere decompresso.

Per altre informazioni sulle esclusioni per i database di sola lettura e i filegroup di sola lettura in SQL Server 2008, visitare il sito Web MSDN seguente:

Filegroup di sola lettura e compressione

Nota

Questo argomento si applica anche a SQL Server 2012 e versioni successive.

Ulteriori informazioni

Anche se è fisicamente possibile aggiungere database SQL Server su volumi compressi, non è consigliabile farlo e non è supportato. I motivi sottostanti sono i seguenti:

  • Prestazioni

    I database in volumi compressi possono causare un sovraccarico significativo delle prestazioni. L'importo varia a seconda del volume di I/O e del rapporto tra letture e scritture. Tuttavia, è stata osservata una riduzione del 500% in alcune condizioni.

  • Ripristino del database

    Il ripristino transazionale affidabile del database richiede scritture allineate al settore e i volumi compressi non supportano questo scenario. Un secondo problema riguarda la gestione interna dello spazio di ripristino. SQL Server riserva internamente spazio preallocato nei file di database per i rollback. Nei volumi compressi è possibile ricevere un errore di spazio insufficiente sui file preallocati e ciò interferisce con il corretto ripristino.

In alcuni scenari, un backup SQL Server in un volume compresso o in una cartella compressa non riesce. Quando si verifica questo problema, viene visualizzato uno dei messaggi di errore seguenti.

  • In Windows Vista e versioni successive di Windows

    STATUS_FILE_SYSTEM_LIMITATION Impossibile completare l'operazione richiesta a causa di una limitazione del file system
    Errore del sistema operativo 665(Impossibile completare l'operazione richiesta a causa di una limitazione del file system)

  • Nelle versioni precedenti di Windows

    STATUS_INSUFFICIENT_RESOURCES risorse di sistema insufficienti per completare il servizio richiesto Errore del sistema operativo 1450(Risorse di sistema insufficienti per completare il file richiesto o 33(Il processo non può accedere al file perché un altro processo ha bloccato una parte del file).

Per altre informazioni su questo problema, vedere Un file molto frammentato in un volume NTFS potrebbe non aumentare oltre una determinata dimensione.

Nota

  • L'hotfix per Windows Vista e le versioni successive di Windows illustrato nell'articolo della Knowledge Base 967351 potrebbe non risolvere il problema dei backup SQL Server non riusciti in un volume compresso o in una cartella compressa. Tuttavia, questo hotfix consente di mediare il problema.
  • Dopo aver applicato l'hotfix illustrato nell'articolo della Knowledge Base 967351, è necessario formattare l'unità in cui è abilitata la compressione usando il /L parametro . Quando si formatta l'unità in cui è abilitata la compressione usando il /L parametro , il segmento byte per record di file passa da 1.024 byte a 4.096 byte.

SQL Server backup in volumi compressi possono risparmiare spazio su disco. Tuttavia, possono aumentare l'utilizzo della CPU durante l'operazione di backup. È sempre consigliabile usare le funzionalità di checksum BACKUP per garantire l'integrità dei dati.

SQL Server richiede sistemi per supportare la distribuzione garantita a supporti stabili, come descritto nei requisiti del programma di affidabilità I/O SQL Server.

Per altre informazioni sui requisiti di input e output per il motore di database SQL Server, vedere requisiti di input/output motore di database di Microsoft SQL Server