SQL Server 2025 ではバックアップ圧縮のアルゴリズムとして ZSTD (ZStandard) がサポートされるようになりました。
各圧縮方法でどの程度効率が変わるのかを確認してみました。
Contents
バックアップ圧縮の各アルゴリズムの比較
SQL Server 2025 で使用可能なバックアップ圧縮のアルゴリズム
SQL Server 2025 では前述のとおり ZSTD 圧縮が追加され、バックアップ圧縮では次のアルゴリズムを使用できるようになりました。
- MS_XPRESS: 従来からの圧縮
- QAT_DEFLATE: SQL Server 2022 で追加された Intel QAT を使用した圧縮
- ZSTD: SQL Server 2025 で追加された圧縮
詳細については冒頭に記載したドキュメントと BACKUP から確認することができます。
SQL Server 2022 では圧縮のアルゴリズムとして QAT_DEFLATE が追加されました。これは Intel QAT を使用したものとなり、SQL Server に IntelR QuickAssist Technology Driver for Windows のようなドライバーをインストールする必要がありました。
Intel QAT は、ハードウェアオフロードの他に、ソフトウェアモードでの利用もできるため、専用のハードウェアを用意しなくても利用することはできましたが、ドライバーの明示的なインストールが必要となっていました。
SQL Server 2025 で追加された ZSTD はソフトウェアレベルでのアルゴリズムとなり、標準機能として使用できるため、ドライバーのインストールは不要で、従来の MS_XPRESS より高圧縮が期待できる圧縮アルゴリズムを使用することができます。
バックアップ中の CPU 負荷の軽減を目的とするんド絵あれば、Intel QAT + ハードウェアオフロードを継続して検討する必要がありますが、そうではなくバックアップファイルのサイズ削減を目的とするのであれば、今回追加された ZSTD の利用を検討できるのではないでしょうか。
SQL Server 2025 では、BACKUP ステートメントで「ALGORITHM」によるアルゴリズムの指定の他に、「LEVEL」による圧縮のレベルも指定できるようになり、MS_XPRESS / ZSTD を使用した場合には圧縮レベルを調整することができるようです。(LOW が既定のレベル)
各アルゴリズムの比較
SQL Server 2025 で使用できる各アルゴリズムでバックアップの状態を比較してみました。
QAT_DEFLATE (Intel QAT) については、ハードウェアオフロードができる環境が無いため、ソフトウェアモードを使用しています。
150GB 程度のデータベースを使用して、比較した内容が下表となります。
アルゴリズム | バックアップサイズ | CPU 時間 | 経過時間 | スループット |
MS_XPRESS (LOW) | 18,751 MB | 5,360 ms | 272,976 ms | 509.404 MB/sec |
MS_XPRESS (MEDIUM) | 15,748 MB | 5,499 ms | 271,525 ms | 512.145 MB/sec |
MS_XPRESS (HIGH) | 15,688 MB | 5,064 ms, | 280,532 ms | 495.745 MB/sec |
QAT_DEFLATE (SOFTWARE) | 16,897 MB | 4,515 ms | 263,971 ms | 526.793 MB/sec |
ZSTD (LOW) | 16,183 MB | 4,610 ms | 261,544 ms | 531.688 MB/sec |
ZSTD (MEDIUM) | 13,219 MB | 5,015 ms | 264,271 ms | 526.188 MB/sec |
ZSTD (HIGH) | 12,378 MB | 6,359 ms | 304,969 ms | 455.957 MB/sec |
QAT_DEFLATE については、ソフトウェアモードで利用しているので参考情報となるかと思いますが、ZST は圧縮の効率が良くなっていますね。
ZSTD は MS_XPRESS と比較すると圧縮効率は高く、今回の検証であれば、MEDIUM の圧縮レベルでも MS_XPRESS と同程度のオーバーヘッドとなっており、バランスがよさそうでした。
バックアップの設定等について
デフォルトの圧縮アルゴリズムの設定
従来からバックアップをデフォルトで圧縮するかについては、backup compression default で設定ができました。
SQL Server 2022 以降、backup compression algorithm で、バックアップアップ圧縮のデフォルトのアルゴリズムを指定できるようになりました。
SQL Server 2025 で設定可能な内容が更新されており、既定の圧縮アルゴリズムを ZSTD にすることもできるようになっていいるようです。(CTP 2.0 時点では、backup compression algorithm の最大値は 2 (QAT_DEFLATE) となっているため、3 (ZSTD) は指定できませんでした)
現状、既定の圧縮の設定とアルゴリズムを設定する方法は提供されていますが、既定の圧縮レベル (LOW / MEDIUM / HIGH) を指定することはできないようですので、SSMS / ログ配布等の GUI でバックアップを取得する場合に圧縮レベルを指定するのは難しそうですね。
取得しているバックアップの圧縮アルゴリズムの確認
バックアップで使用されている圧縮アルゴリズムについては、backupset から確認ができます。
今後、現状のバックアップがどの圧縮アルゴリズムを使用しているかを確認する必要があるかもしれませんので、この情報も活用したいですね。
現時点では、圧縮レベルを確認するビュー等は提供されていないような雰囲気がありました。
まとめ
ZSTD は前述のとおり、QAT_DEFLATE のようなソフトウェア / ハードウェアの追加の導入は必要なく、SQL Server の標準ソフトウェアだけで使用することができます。
今回検証したデータベースでは、MS_XPRESS より ZSTD のほうが圧縮の効率が良いという結果となっていました。
今後、バックアップを圧縮する場合は ZSTD の利用を検討してもよさそうですね。