Alguém tem algum conhecimento (interno?) de como a compactação de backup funciona com TDE no SQL Server (versão 2016+).
Em geral, eu esperaria que a compactação de dados criptografados tivesse um benefício mínimo, no entanto, notamos que com o TDE, quando fazemos um backup completo com compactação, ainda vemos uma redução significativa no tamanho do arquivo de backup. Isso nos fez pensar se o processo de backup descriptografa os dados, os compacta, criptografa esse resultado e depois faz o backup em disco. Obviamente, isso aumentará o consumo de CPU para o processo de backup devido à necessidade de descriptografar e recriptografar os dados.
Detalhes
select @@version
Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64) 22 de agosto de 2017 17:04:49 Copyright (C) 2017 Microsoft Corporation Developer Edition (64 bits) no Windows 10 Enterprise 10.0 (Build 17763: ) (Hypervisor)'
Código TSQL
BACKUP DATABASE TestTDE TO DISK = 'c:\Test\TestTDE_Compressed.bak' WITH COMPRESSION, MAXTRANSFERSIZE = 65537
Ou a economia de espaço é alcançada de uma maneira diferente?
É exatamente assim que a economia de espaço é alcançada. Quando a página de execução do processo de backup é descriptografada e carregada na memória, compactada, criptografada e salva no disco. O processo é mencionado no Backup TSQL Doc
Estou assumindo aqui que, como você está obtendo uma boa quilometragem com compactação de backup no banco de dados TDE, você deve estar usando o SQL Server 2016 corrigido para o SP e CU mais recentes. Eu sugiro fortemente que você leia Backup Compression for TDE Enabled Database
Como você está usando
SQL Server 2017
e seu script TSQL usaMAXTRANSFERSIZE> 65536
, você obterá o benefício da compactação de backup para o banco de dados habilitado para TDE. Mas sugiro fortemente que você corrija o SQL Server 2017 para a CU mais recente