Compression na prática
Compression é sem dúvida umas das melhores features do SQL Server 2008, fiz alguns testes para ver como isso funciona na prática e fiquei bem contente com o resultado.
Clique no link abaixo para baixar o script que utilizei para teste.
Tabela |
CPU |
Writes |
Duration |
Tamanho |
Pages |
Tmp_Row_Compression |
10656 |
1617 |
45809 |
12 MB |
1613 |
Tmp_Page_Compression |
11359 |
1142 |
44118 |
8 MB |
1133 |
Tmp_Sem_Compression |
10032 |
5914 |
46873 |
46 MB |
5883 |
Baseados nos resultados acima, podemos observar 3 pontos importantes, CPU, Writes e Tamanho da tabela.
CPU – Como era de se esperar o algoritmo de nossos amigos Lempel e Ziv utilizados na compactação por página consome mais recurso de CPU, por outro lado, no nosso exemplo teve o melhor desempenho em relação a compactação dos dados consumindo apenas 1133 páginas.
Writes – Em relação ao número de writes confesso que fiquei admirado, mesmo sabendo que o SQL vai compactar os dados e tal, ao comparar o número de writes da tabela sem compression com as tabelas com compression é de se espantar.
Tamanho – Podemos observar que a compressão dos dados foi fantástica, tanto para compression por Row quanto por Page. Show de bola.
Obs.: Rodei o SQL na minha máquina e durante a execução continuei trabalhando, acessando disco, compilando projeto e por ai vai, ou seja, os resultados podem mudar bastante caso você repita os testes em uma máquina mais “tranqüila“ 🙂 Se você fizer os testes me mande o resultado…