Nel mio precedente articolo su backup di SQL Server su Azure Blob Storage, abbiamo visto come sia ormai standard fare backup diretti su storage cloud per semplificare la gestione e migliorare la scalabilità. Ora, con l’uscita di SQL Server 2025, c’è una novità molto interessante che riguarda proprio la compressione dei backup: Microsoft ha introdotto il supporto nativo per l’algoritmo di compressione ZSTD (Zstandard).
Perché la compressione ZSTD è una svolta?
La compressione dei backup è fondamentale per ridurre lo spazio occupato e, di conseguenza, anche i costi di storage e il tempo necessario per spostare i dati. Fino a SQL Server 2019, la compressione dei backup utilizzava un algoritmo proprietario più “tradizionale” che, pur efficace, aveva limiti sia in termini di rapporto di compressione che di velocità.
ZSTD, invece, è un algoritmo open-source sviluppato da Facebook, che garantisce:
-
Migliore rapporto di compressione: file più piccoli rispetto al metodo precedente
-
Maggiore velocità di compressione e decompressione
-
Flessibilità nei livelli di compressione, bilanciando prestazioni e risparmio spazio
In pratica, usare ZSTD per i backup significa fare meno fatica in termini di spazio e velocità, un vantaggio enorme soprattutto per database molto grandi o backup frequenti.
Come usare ZSTD per i backup su Azure Blob Storage
Ecco un esempio di comando per un backup con compressione ZSTD:
BACKUP DATABASE [Database01] TO URL = N'https://simastorage1.blob.core.windows.net/sql/database01_zstd_high.bak' WITH COMPRESSION (ALGORITHM = ZSTD, LEVEL = HIGH), MAXTRANSFERSIZE = 4194304, BLOCKSIZE = 65536, CHECKSUM;
Cosa significano queste opzioni?
-
COMPRESSION (ALGORITHM = ZSTD): indica a SQL Server di usare la compressione ZSTD invece del metodo tradizionale.
-
MAXTRANSFERSIZE: imposta la dimensione massima del buffer di trasferimento in byte (qui circa 4 MB), ottimizzando la velocità di upload su Blob Storage.
-
BLOCKSIZE: definisce la dimensione del blocco di compressione (qui 64 KB), influenzando il rapporto di compressione e le performance.
-
CHECKSUM: aggiunge un controllo di integrità al backup, sempre consigliato per garantire che i dati non vengano corrotti durante il trasferimento o la scrittura.
Test pratici: tempi e dimensioni a confronto
Ho eseguito diversi backup sul database Database01, con circa 3,1 milioni di pagine, usando tre diverse modalità:
| Metodo | Destinazione | Tempo (s) | Velocità (MB/s) | Dimensione file (GB) | Dimensione file (byte) |
|---|---|---|---|---|---|
| MS_XPRESS (tradizionale) | Azure Blob | 102.7 | 239.3 | 4,46 | 4.797.431.808 |
| MS_XPRESS (tradizionale) | Disco Locale | 53.4 | 459.9 | 4,46 | 4.797.431.808 |
| ZSTD Standard | Azure Blob | 88.1 | 279.1 | 4,43 | 4.767.752.192 |
| ZSTD Standard | Disco Locale | 27.7 | 888.2 | 4,43 | 4.767.752.192 |
| ZSTD High | Azure Blob | 153.8 | 159.8 | 3,63 | 3.905.183.744 |
| ZSTD High | Disco Locale | 119.6 | 205.5 | 3,63 | 3.905.183.744 |
Analisi dei risultati
Dimensioni dei file
La compressione ZSTD High permette di ridurre la dimensione del backup di circa il 20% rispetto alla compressione tradizionale, con un file che passa da 4,46 GB a 3,63 GB. Questa riduzione è molto significativa, soprattutto su storage cloud dove si paga in base allo spazio occupato.
La compressione ZSTD Standard offre una riduzione più contenuta ma comunque visibile, con circa 60 MB in meno rispetto al metodo tradizionale.
Tempi di backup e velocità
La compressione tradizionale è più veloce, soprattutto su disco locale, ma anche su Blob Storage. La compressione ZSTD High è la più lenta, perché punta a massimizzare la compressione e richiede quindi più CPU.
La modalità ZSTD Standard invece è un buon compromesso, più veloce del metodo tradizionale su cloud e con una buona riduzione dello spazio.
Quando usare ZSTD e quale livello scegliere?
-
Se vuoi risparmiare spazio e lo scenario non richiede backup velocissimi, scegli ZSTD High.
-
Se cerchi un buon equilibrio tra velocità e compressione, ZSTD Standard è la scelta ideale.
-
Se la priorità è la velocità, resta sulla compressione tradizionale (MS_XPRESS).
Conclusioni
La novità della compressione ZSTD in SQL Server 2025 è davvero interessante e apre nuove possibilità per ottimizzare backup e costi, soprattutto in ambienti cloud come Azure Blob Storage.