Compactação de backup (SQL Server)Backup Compression (SQL Server)

Este tópico descreve a compactação dos backups do SQL ServerSQL Server , incluindo restrições, compensação de desempenho de backups compactados, a configuração da compactação de backup e a taxa de compactação.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. Há suporte para a compactação de backup nas edições Enterprise, Standard e Developer do SQL Server 2016SQL Server 2016 .Backup compression is supported on SQL Server 2016SQL Server 2016 editions: Enterprise, Standard, and Developer. Todas as edições do SQL Server 2008SQL Server 2008 ou posterior podem restaurar um backup compactado.Every edition of SQL Server 2008SQL Server 2008 and later can restore a compressed backup.

Benefícios Benefits

  • Como um backup compactado é menor do que um backup não compactado dos mesmos dados, a compactação de um backup normalmente requer menos operações de E/S do dispositivo e, portanto, normalmente aumenta significativamente a velocidade do backup.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.

    Para obter mais informações, consulte Impacto de desempenho dos backups compactados, posteriormente neste tópico.For more information, see Performance Impact of Compressing Backups, later in this topic.

Restrições Restrictions

As restrições a seguir aplicam-se aos backups compactados:The following restrictions apply to compressed backups:

  • Backups compactados e não compactados não podem coexistir em um conjunto de mídias.Compressed and uncompressed backups cannot co-exist in a media set.

  • Porém, as versões anteriores do SQL ServerSQL Server não podem ler os backups compactados.Previous versions of SQL ServerSQL Server cannot read compressed backups.

  • Backups NT não podem compartilhar uma fita com backups compactados do SQL ServerSQL Server .NTbackups cannot share a tape with compressed SQL ServerSQL Server backups.

Impacto de desempenho dos backups compactados Performance Impact of Compressing Backups

Por padrão, a compactação aumenta consideravelmente o uso da CPU, e o consumo adicional da CPU por parte do processo de compactação pode afetar negativamente as operações simultâneas.By default, compression significantly increases CPU usage, and the additional CPU consumed by the compression process might adversely impact concurrent operations. Portanto, convém criar backups compactados de baixa prioridade em uma sessão cujo uso da CPU é limitado peloResource Governor.Therefore, you might want to create low-priority compressed backups in a session whose CPU usage is limited byResource Governor. Para obter mais informações, consulte Usar o Resource Governor para limitar o uso de CPU por meio de compactação de backup (Transact-SQL).For more information, see Use Resource Governor to Limit CPU Usage by Backup Compression (Transact-SQL).

Para obter uma boa visão do desempenho de E/S do seu backup, é possível isolar o E/S do backup para ou dos dispositivos avaliando as seguintes classificações dos contadores de desempenho: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:

  • Contadores de desempenho de E/S do Windows, como os contadores de disco físicoWindows I/O performance counters, such as the physical-disk counters

  • O contador de Taxa de Transferência do Dispositivo em Bytes/s do objeto SQLServer:Backup DeviceThe Device Throughput Bytes/sec counter of the SQLServer:Backup Device object

  • O contador Taxa de Transferência de Backup/Restauração/s do objeto SQLServer:DatabasesThe Backup/Restore Throughput/sec counter of the SQLServer:Databases object

    Para obter informações sobre contadores do Windows, consulte a ajuda do Windows.For information about Windows counters, see Windows help. Para obter informações sobre como trabalhar com contadores SQL Server, consulte Usar objetos do SQL Server.For information about how to work with SQL Server counters, see Use SQL Server Objects.

Calcular a taxa de compactação de um backup compactado Calculate the Compression Ratio of a Compressed Backup

Para calcular a taxa de compactação de um backup, use os valores para o backup nas colunas backup_size e compressed_backup_size da tabela de histórico backupset da seguinte maneira: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

Por exemplo, uma taxa de compactação de 3:1 indica que você está economizando aproximadamente 66% de espaço em disco.For example, a 3:1 compression ratio indicates that you are saving about 66% on disk space. Para consultar essas colunas, você pode usar a seguinte instrução Transact-SQL:To query on these columns, you can use the following Transact-SQL statement:

SELECT backup_size/compressed_backup_size FROM msdb..backupset;  

A taxa de compactação de um backup compactado depende dos dados que foram compactados.The compression ratio of a compressed backup depends on the data that has been compressed. Uma variedade de fatores pode impactar na taxa de compactação obtida.A variety of factors can impact the compression ratio obtained. Os principais fatores incluem:Major factors include:

  • O tipo de dados.The type of data.

    Os dados de caractere compactam mais do que outros tipos de dados.Character data compresses more than other types of data.

  • A consistência dos dados entre as linhas em uma página.The consistency of the data among rows on a page.

    Normalmente, se uma página contém várias linhas com um campo contendo o mesmo valor, poderá ocorrer uma compactação significativa para esse valor.Typically, if a page contains several rows in which a field contains the same value, significant compression might occur for that value. Por outro lado, para um banco de dados que contém dados aleatórios ou contém somente uma grande linha por página, um backup compactado pode ser tão grande quanto um backup não compactado.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.

  • Se os dados são criptografados.Whether the data is encrypted.

    A compactação de dados criptografados é significativamente menor do que a compactação de dados equivalentes não criptografados.Encrypted data compresses significantly less than equivalent unencrypted data. Se criptografia transparente de dados for usada para criptografar um banco de dados inteiro, a compactação de backup talvez não reduza muito o tamanho, se reduzir.If transparent data encryption is used to encrypt an entire database, compressing backups might not reduce their size by much, if at all.

  • Se o banco de dados é compactado.Whether the database is compressed.

    Se o banco de dados for compactado, a compactação de backups poderá não reduzir muito o seu tamanho.If the database is compressed, compressing backups might not reduce their size by much, if at all.

Alocação de espaço para o arquivo de backup Allocation of Space for the Backup File

Para backups compactados, o tamanho do arquivo de backup final depende de como os dados são compactáveis e isto é desconhecido antes da conclusão da operação de backup.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. Portanto, por padrão, ao fazer backup de um banco de dados usando compactação, o Mecanismo de Banco de Dados usa um algoritmo de pré-alocação para o arquivo de backup.Therefore, by default, when backing up a database using compression, the Database Engine uses a pre-allocation algorithm for the backup file. Este algoritmo pré-aloca um percentual predefinido do tamanho do banco de dados para o arquivo de backup.This algorithm pre-allocates a predefined percentage of the size of the database for the backup file. Se for necessário mais espaço durante a operação de backup, o Mecanismo de Banco de Dados crescerá o arquivo.If more space is needed during the backup operation, the Database Engine grows the file. Se o tamanho final for menor que o espaço alocado, no final da operação de backup, o Mecanismo de Banco de Dados reduzirá o arquivo para o tamanho final real do backup.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.

Para permitir que o arquivo de backup somente cresça conforme o necessário para alcançar seu tamanho final, use o sinalizador de rastreamento 3042.To allow the backup file to grow only as needed to reach its final size, use trace flag 3042. O sinalizador de rastreamento 3042 faz a operação de backup ignorar o algoritmo padrão de pré-alocação da compactação de backup.Trace flag 3042 causes the backup operation to bypass the default backup compression pre-allocation algorithm. Este sinalizador de rastreamento será útil se você precisar salvar em espaço alocando somente o tamanho real necessário para o backup compactado.This trace flag is useful if you need to save on space by allocating only the actual size required for the compressed backup. Porém, usar este sinalizador de rastreamento pode causar uma pequena penalidade de desempenho (um possível aumento na duração da operação de backup).However, using this trace flag might cause a slight performance penalty (a possible increase in the duration of the backup operation).

Consulte tambémSee Also

Visão geral do backup (SQL Server) Backup Overview (SQL Server)
Sinalizadores de rastreamento (Transact-SQL) Trace Flags (Transact-SQL)