Por que eu devo ler este artigo:Este artigo trata do novo recurso do SQL Server chamado ColumnStore Index. Com ele é possível armazenar os registros em forma colunar, facilitando assim a busca dos dados. Nesse artigo veremos como esse recurso funciona internamente e entender suas melhores práticas para implementação.

O conhecimento dessa informação irá permitir otimizar as buscas dos dados em um Data Warehouse de 10x a 100x. Também irá auxiliar a entender como é realizada a criação do melhor índice para o seu DW. O ColumnStore Index possui a tecnologia de armazenamento em coluna fazendo com que os dados sejam armazenados de forma mais eficiente.

O ColumnStore Index é um recurso que foi lançado no SQL Server 11.0, também conhecido como SQL Server “Denali” ou SQL Server 2012. O objetivo principal é possibilitar uma maior performance de consultas dentro de um sistema OLAP (Online Transactional Processing). Para se beneficiar do recurso é importante que a modelagem do seu data warehouse seja de preferência um Star Schema (BOX 1).

Esse novo índice é utilizado em grandes tabelas do tipo fato (Fact Table) que utilizam para pesquisa agregações, sumarizações e filtros. Os registros dentro do índice sofrem uma grande compressão de coluna, isso possibilita que mais registros sejam colocados em páginas fazendo com que sejam necessárias menos páginas para a busca dos registros quando solicitado.

BOX 1. Modelo Star Schema

Esse tipo de modelagem é utilizado para propor uma maior tomada de decisão para o negócio. Esse modelo é a metodologia utilizada para a modelagem de dados de um Data Warehouse. Todas as tabelas chamadas de dimensões são ligadas a uma tabela principal chamada de fato fazendo com que os dados sejam redundantes diminuindo assim os joins e melhorando o desempenho nas consultas por dados.

Além disso, o otimizador de consultas, local aonde são enviadas as consultas que são tratadas para escolha do melhor plano de execução, possui um novo modo de execução chamado “Batch-Mode”. Com ele é possível realizar o processamento de 1.000 linhas ao mesmo tempo, enquanto no modelo usual teríamos um processamento linha a linha.

É possível também se beneficiar de uma tecnologia chamada “Segment Elimination”, algoritmo que pode eliminar os dados que não são pertinentes a consultas reduzindo drasticamente o impacto de I-O causado pela consulta.

Row-Store Vs Column-Store

Conforme podemos observar na Figura 1, no armazenamento em Row-Store (Linhas) possuímos dois tipos: Heap Table e Clustered Table. As Heap Tables (ver Figura 2) são tabelas que não possuem uma organização lógica, os registros são armazenados à medida que são inseridos, sem possuir nenhuma ordem.

Com isso, qualquer busca dentro da tabela será gerado um Table Scan, será sempre necessário percorrer a tabela por inteira para buscar um dado em específico.

Figura 1. ...

Quer ler esse conteúdo completo? Tenha acesso completo