Compression de sauvegardes (SQL Server)Backup Compression (SQL Server)

Cette rubrique décrit la compression des sauvegardes SQL ServerSQL Server , notamment les restrictions, les compromis en termes de performances pour la compression des sauvegardes, la configuration pour la compression des sauvegardes et le taux de compression.This topic describes the compression of SQL ServerSQL Server backups, including restrictions, performance trade-off of compressing backups, the configuration of backup compression, and the compression ratio. La compression de sauvegarde est prise en charge sur les éditions SQL Server 2016SQL Server 2016 : Entreprise, Standard et Développeur.Backup compression is supported on SQL Server 2016SQL Server 2016 editions: Enterprise, Standard, and Developer. Chaque édition de SQL Server 2008SQL Server 2008 et ultérieure peut restaurer une sauvegarde compressée.Every edition of SQL Server 2008SQL Server 2008 and later can restore a compressed backup.

Avantages Benefits

  • Une sauvegarde compressée étant plus petite qu'une sauvegarde non compressée des mêmes données, la compression d'une sauvegarde requiert en général moins d'E/S de périphérique et, par conséquent, augmente souvent considérablement la vitesse de la sauvegarde.Because a compressed backup is smaller than an uncompressed backup of the same data, compressing a backup typically requires less device I/O and therefore usually increases backup speed significantly.

    Pour plus d'informations, consultez Impact sur les performances de la compression des sauvegardes, plus loin dans cette rubrique.For more information, see Performance Impact of Compressing Backups, later in this topic.

Restrictions Restrictions

Les restrictions suivantes s'appliquent aux sauvegardes compressées :The following restrictions apply to compressed backups:

  • Les sauvegardes compressées et non compressées ne peuvent pas co-exister dans un support de sauvegardes.Compressed and uncompressed backups cannot co-exist in a media set.

  • Toutefois, les versions précédentes de SQL ServerSQL Server ne peuvent pas lire les sauvegardes compressées.Previous versions of SQL ServerSQL Server cannot read compressed backups.

  • NTbackups ne peut pas partager de bande avec les sauvegardes SQL ServerSQL Server compressées.NTbackups cannot share a tape with compressed SQL ServerSQL Server backups.

Impact sur les performances de la compression des sauvegardes Performance Impact of Compressing Backups

Par défaut, la compression augmente considérablement l'utilisation de l'UC et l'UC supplémentaire consommée par le processus de compression peut avoir un impact néfaste sur les opérations simultanées.By default, compression significantly increases CPU usage, and the additional CPU consumed by the compression process might adversely impact concurrent operations. Ainsi, dans une session où l’utilisation de l’UC est limitée, il peut être préférable de créer une sauvegarde compressée de priorité basse à l’aide deResource Governor.Therefore, you might want to create low-priority compressed backups in a session whose CPU usage is limited byResource Governor. Pour plus d'informations, consultez Utiliser Resource Governor pour limiter l’utilisation de l’UC par compression de la sauvegarde (Transact-SQL).For more information, see Use Resource Governor to Limit CPU Usage by Backup Compression (Transact-SQL).

Pour obtenir une bonne image de vos performances d'E/S de sauvegarde, vous pouvez isoler l'E/S de sauvegarde en direction ou depuis des unités en évaluant les types suivants de compteurs de performance :To obtain a good picture of your backup I/O performance, you can isolate the backup I/O to or from devices by evaluating the following sorts of performance counters:

  • Compteurs de performance d'E/S Windows, tels que les compteurs de disque physiqueWindows I/O performance counters, such as the physical-disk counters

  • Compteur Débit d’unité en octets/s de l’objet SQLServer:Backup DeviceThe Device Throughput Bytes/sec counter of the SQLServer:Backup Device object

  • Compteur Débit de sauvegarde/restauration/s de l’objet SQLServer:DatabasesThe Backup/Restore Throughput/sec counter of the SQLServer:Databases object

    Pour des informations sur les compteurs Windows, consultez l'aide de Windows.For information about Windows counters, see Windows help. Pour obtenir des informations sur l’utilisation des compteurs SQL Server, consultez Utiliser des objets SQL Server.For information about how to work with SQL Server counters, see Use SQL Server Objects.

Calculer le taux de compression d'une sauvegarde compressée Calculate the Compression Ratio of a Compressed Backup

Pour calculer le taux de compression d’une sauvegarde, utilisez les valeurs pour la sauvegarde dans les colonnes backup_size et compressed_backup_size de la table de l’historique backupset , comme suit :To calculate the compression ratio of a backup, use the values for the backup in the backup_size and compressed_backup_size columns of the backupset history table, as follows:

backup_size:compressed_backup_sizebackup_size:compressed_backup_size

Par exemple, un taux de compression 3:1 indique que vous économisez environ 66 % de l'espace disque.For example, a 3:1 compression ratio indicates that you are saving about 66% on disk space. Pour effectuer une requête sur ces colonnes, vous pouvez utiliser l'instruction Transact-SQL suivante :To query on these columns, you can use the following Transact-SQL statement:

SELECT backup_size/compressed_backup_size FROM msdb..backupset;  

Le taux de compression d'une sauvegarde compressée dépend des données compressées.The compression ratio of a compressed backup depends on the data that has been compressed. Divers facteurs peuvent avoir une incidence sur le taux de compression obtenu.A variety of factors can impact the compression ratio obtained. Les facteurs majeurs sont :Major factors include:

  • Le type des données.The type of data.

    Les données caractères se compressent plus que d'autres types de données.Character data compresses more than other types of data.

  • La cohérence des données dans les lignes sur une page.The consistency of the data among rows on a page.

    En général, si une page contient plusieurs lignes dans lesquelles un champ contient la même valeur, une compression importante peut se produire pour cette valeur.Typically, if a page contains several rows in which a field contains the same value, significant compression might occur for that value. En revanche, pour une base de données qui contient des données aléatoires ou qui contient une seule grande ligne par page, une sauvegarde compressée serait presque aussi importante qu'une sauvegarde non compressée.In contrast, for a database that contains random data or that contains only one large row per page, a compressed backup would be almost as large as an uncompressed backup.

  • Si les données sont chiffrées.Whether the data is encrypted.

    Le taux de compression des données chiffrées est beaucoup moins élevé que celui des données non chiffrées correspondantes.Encrypted data compresses significantly less than equivalent unencrypted data. Si le chiffrement transparent des données est utilisé pour chiffrer une base de données entière, la compression des sauvegardes ne réduit pas leur taille de manière significative, voire pas du tout.If transparent data encryption is used to encrypt an entire database, compressing backups might not reduce their size by much, if at all.

  • Si la base de données est compressée.Whether the database is compressed.

    Si la base de données est compressée, compresser des sauvegardes peut réduire faiblement leur taille, voire pas du tout.If the database is compressed, compressing backups might not reduce their size by much, if at all.

Allocation d'espace pour le fichier de sauvegarde Allocation of Space for the Backup File

Pour les sauvegardes compressées, la taille du fichier de sauvegarde final dépend de la capacité de compression des données. Or, celle-ci n'est pas connue avant la fin de l'opération de sauvegarde.For compressed backups, the size of the final backup file depends on how compressible the data is, and this is unknown before the backup operation finishes. Par conséquent, par défaut, lors de la sauvegarde d'une base de données faisant appel à la compression, le moteur de base de données utilise un algorithme de préallocation pour le fichier de sauvegarde.Therefore, by default, when backing up a database using compression, the Database Engine uses a pre-allocation algorithm for the backup file. Cette algorithme préalloue un pourcentage prédéfini de la taille de la base de données pour le fichier de sauvegarde.This algorithm pre-allocates a predefined percentage of the size of the database for the backup file. Si davantage d'espace est requis au cours de l'opération de sauvegarde, le moteur de base de données augmente la taille du fichier.If more space is needed during the backup operation, the Database Engine grows the file. Si la taille finale est inférieure à l'espace alloué, à la fin de l'opération de sauvegarde, le moteur de base de données réduit le fichier à la taille finale réelle de la sauvegarde.If the final size is less than the allocated space, at the end of the backup operation, the Database Engine shrinks the file to the actual final size of the backup.

Pour permettre au fichier de sauvegarde de croître autant que nécessaire uniquement afin d'atteindre sa taille définitive, utilisez l'indicateur de trace 3042.To allow the backup file to grow only as needed to reach its final size, use trace flag 3042. L'indicateur de trace 3042 permet à l'opération de sauvegarde de contourner l'algorithme de préallocation de la compression de sauvegarde par défaut.Trace flag 3042 causes the backup operation to bypass the default backup compression pre-allocation algorithm. Cet indicateur de trace est utile si vous devez économiser de l'espace en allouant uniquement la taille réelle requise pour la sauvegarde compressée.This trace flag is useful if you need to save on space by allocating only the actual size required for the compressed backup. Toutefois, le recours à cet indicateur de trace peut entraîner une légère baisse des performances (augmentation possible de la durée de l'opération de sauvegarde).However, using this trace flag might cause a slight performance penalty (a possible increase in the duration of the backup operation).

Voir aussiSee Also

Vue d’ensemble de la sauvegarde (SQL Server) Backup Overview (SQL Server)
Indicateurs de trace (Transact-SQL) Trace Flags (Transact-SQL)