Condividi tramite


Compressione backup (SQL Server)

Questo argomento descrive la compressione di SQL Server backup, incluse restrizioni, compromessi delle prestazioni per la compressione dei backup, la configurazione della compressione dei backup e il rapporto di compressione.

Nota

Per informazioni sulle edizioni di SQL Server 2014 che supportano la compressione dei backup, vedere Funzionalità supportate dalle edizioni di SQL Server 2014. Ogni edizione di SQL Server 2008 e versioni successive può ripristinare un backup compresso.

Vantaggi

  • Poiché le dimensioni di un backup compresso sono minori di quelle di un backup non compresso degli stessi dati, la compressione di un backup richiede una minore quantità di I/O del dispositivo e pertanto la velocità del backup aumenta in genere in modo significativo.

    Per ulteriori informazioni, vedere Impatto sulle prestazioni della compressione di backup, più avanti in questo argomento.

Restrizioni

Ai backup compressi vengono applicate le restrizioni seguenti:

  • I backup compressi e non compressi non possono coesistere in un set di supporti.

  • Le versioni precedenti di SQL Server non possono leggere i backup compressi.

  • NTbackups non può condividere un nastro con backup compressi SQL Server.

Impatto sulle prestazioni della compressione dei backup

Per impostazione predefinita, la compressione aumenta significativamente l'utilizzo della CPU, il che può avere un impatto negativo sulle operazioni simultanee. Quindi potrebbe essere necessario creare backup compressi con priorità bassa in una sessione in cui l'utilizzo della CPU è limitato daResource Governor. Per altre informazioni, vedere Usare Resource Governor per limitare l'utilizzo della CPU da parte della compressione dei backup (Transact-SQL).

Per conoscere le prestazioni di I/O del backup, è possibile isolare l'I/O del backup in/da dispositivi valutando i seguenti ordinamenti di contatori delle prestazioni:

  • Contatori delle prestazioni di I/O di Windows, ad esempio i contatori del disco fisico

  • Contatore Byte/sec velocità effettiva dispositivo dell'oggetto SQLServer:Backup Device

  • Contatore Velocità effettiva backup o ripristino/sec dell'oggetto SQLServer:Databases

Per informazioni sui contatori di Windows, vedere la Guida di Windows. Per informazioni su come usare i contatori di SQL Server, vedere Utilizzare oggetti di SQL Server.

Calcolare il rapporto di compressione di un backup compresso

Per calcolare il rapporto di compressione di un backup, usare i valori per il backup nelle colonne backup_size e compressed_backup_size della tabella di cronologia backupset , come segue:

backup_size:compressed_backup_size

Una compressione 3:1, ad esempio, indica un risparmio approssimativo del 66% di spazio su disco. Per eseguire una query su queste colonne, è possibile utilizzare la seguente istruzione Transact-SQL:

SELECT backup_size/compressed_backup_size FROM msdb..backupset;  

Il rapporto di compressione di un backup compresso dipende dai dati compressi. Vari fattori possono avere un impatto sul rapporto di compressione ottenuto. Di seguito vengono indicati alcuni dei fattori principali:

  • Tipo di dati.

    I dati di tipo carattere vengono compressi maggiormente rispetto ad altri tipi di dati.

  • Coerenza dei dati tra le righe in una pagina.

    In genere, se una pagina contiene molte righe in cui un campo contiene lo stesso valore, potrebbe verificarsi una significativa compressione per tale valore. Invece, per un database che contiene dati casuali o che contiene solo una grande riga per pagina, un backup compresso avrebbe pressoché le stesse dimensioni di un backup non compresso.

  • Crittografia dei dati.

    I dati crittografati vengono compressi molto meno rispetto ai dati equivalenti non crittografati. Se si utilizza Transparent Data Encryption per crittografare un intero database, la compressione dei backup potrebbe non garantire una riduzione significativa, e in alcuni casi neanche minima, delle dimensioni.

  • Compressione del database,

    Se il database è compresso, la compressione potrebbe ridurre di poco o non ridurre le dimensioni dei backup.

Allocazione di spazio per il file di backup

Per i backup compressi le dimensioni dei file di backup finale dipende dal livello di compressione dei dati e questo valore non è noto finché l'operazione di backup non viene completata. Per impostazione predefinita, quando si esegue il backup di un database mediante compressione, il motore di database utilizza pertanto un algoritmo di preallocazione per il file di backup. Tramite questo algoritmo viene preallocata una percentuale predefinita delle dimensioni del database per il file di backup. Se durante un'operazione di backup è necessaria una quantità di spazio maggiore, il motore di database aumenta le dimensioni del file. Se le dimensioni finali sono inferiori allo spazio allocato, al termine dell'operazione di backup il motore di database compatta il file in base alle dimensioni finali effettive del backup.

Per consentire l'aumento del file di backup solo di quanto necessario per raggiungere le relative dimensioni finali, utilizzare il flag di traccia 3042. Il flag di traccia 3042 fa in modo che durante l'operazione di backup venga ignorato l'algoritmo di preallocazione di compressione di backup predefinito. Questo flag di traccia è utile se è necessario risparmiare spazio allocando solo le dimensioni effettive necessarie per il backup compresso. L'utilizzo di questo flag di traccia può tuttavia comportare un effetto leggermente negativo sulle prestazioni, vale a dire un possibile aumento della durata dell'operazione di backup.

Attività correlate

Vedere anche

Backup Overview (SQL Server)
Flag di traccia (Transact-SQL)