Desafio #1 – Data Compression Labs

Books

Oi,

Antes de começar o próximo post do Compression Labs, tenho um pequeno e humilde desafio pra quem se interessar a responder (e eu até poderia dizer que estou fazendo isso pra ganhar  tempo fazendo de fazer um post direito, mas estaria sendo estupidamente honesto)…Vamos utilizar o script do Compression Labs #1 adaptado para montar o cenário: vamos criar desta vez duas tabelas, sendo que uma delas vai levar compressão de página.

Os testes foram realizados no SQL Server 2008 R2 Enterprise, mas valem também 2012 e 2014 Enterprise e similares (aka Developer e Evaluation).

Tem uma DMF  bem interessante que verifica as propriedades físicas de um índice, a sys.dm_db_index_physical_stats, o que inclui não apenas informações sobre fragmentação, mas também sobre quantidade de páginas, e pra ser mais específico, também nos informa a quantidade de páginas comprimidas, através da coluna compressed_page_count. Segue informações do BOL.

Compressed1

Sabemos que a DMF possui três modos: LIMITED, SAMPLED E DETAILED. Vamos usar DETAILED pra apresentar algumas informações bem específicas dos índices, das duas tabelas.

Segue consulta:

Resultado:

ResultadoIndex

As perguntas:

1) Se nossa tabela é um índice cluster, porque temos apenas dois níveis na tabela Pessoa, e, mais estranho ainda, um nível na tabela Pessoa2? Que b+tree é essa que não tem raíz, nível intermediário e folha?

2)Porque a compression_page_count não retorna absolutamente nada pra tabela Pessoa2 sendo que temos página comprimida?

As perguntas não são difíceis (principalmente a primeira), mas também não estão “de graça” (acho, rs).
Desafio lançado está e até a próxima.

[]’s

1 Comment

  1. Renato

    Respostas:

    1) Porque o número de páginas não é suficiente para justificar a geração de estrutura B+Tree
    2) Porque temos apenas uma página comprimida porém ainda em uso , não contando para o campo em questão. A contagem certa seria count(compressed_pages) – 1. Quem sabe faço testes em outros posts…
    []’s

    Reply

Leave a Comment

Your email address will not be published. Required fields are marked *