Índices do tipo columnstore são relativamente novos na plataforma SQL Server, sendo introduzidos na versão 2012, mas a tecnologia aplicada nesta nova funcionalidade, conhecida como X-Velocity, já é usada em outras ferramentas da própria Microsoft há algum tempo como, por exemplo, no PowerPivot e no Tabular Mode para a ferramenta Analysis Services.
São oficialmente chamados pela Microsoft de “In-Memory Columnstore Indexes” por fazerem parte das tecnologias de otimização da plataforma SQL Server que se beneficiam de processamento ultrarrápido e armazenamento eficiente em memória para prover uma capacidade de performance ainda não vista no produto.
O SQL Server foi o primeiro SGBD a incorporar nativamente este tipo de recurso e um dos principais objetivos da introdução desta tecnologia é melhorar a performance das operações de leitura junto aos ambientes de data warehouse, onde é comum a volumetria de dados atingir a escala de centenas de gigabytes ou até mesmo alguns terabytes.
Os ganhos de performance obtidos com o uso dos índices colunares são tão grandes que não podemos deixar de considerar a implementação deste recurso em bancos de dados OLTP também, onde frequentemente temos relatórios que processam grandes quantidades de dados e/ou consomem grande quantidade de tempo e recurso para serem processados.
O resultado e o feedback foram tão positivos que a Microsoft continuou investindo nesta funcionalidade e na versão 2014 diversas otimizações foram realizadas, facilitando inclusive a aplicação deste recurso nos mais diferentes cenários, sendo assim considerada uma importante e indispensável ferramenta para se obter altos níveis de performance na plataforma SQL Server.
Os resultados de performance obtidos através da utilização dos índices colunares são possíveis devido a uma combinação entre compressão de dados, algoritmos modernos e otimizados para os recursos de hardware mais recentes, e paralelização eficiente em larga escala. Deste modo, quando aplicados no ambiente, podem prover, dependendo das características dos objetos do banco de dados e das queries neles executadas, entre 4 e 100 vezes mais performance aos principais processos responsáveis pelo processamento massivo de informação.
Todos os recursos disponíveis nas versões 2012 e 2014 dão ao profissional responsável pela administração e/ou arquitetura de bancos de dados SQL Server um novo recurso com o objetivo de melhorar a performance dos ambientes. Embora haja algumas limitações, que serão discutidas ao longo desse artigo, há inúmeras alternativas para contorná-las e assim extrair melhor desempenho nos processos executados na camada de bancos de dados.
Embora ainda não tenha sido lançado oficialmente, o SQL Server 2016 já anunciou algumas melhorias a respeito dos índices colunares, novidades essas relacionadas principalmente à eliminação das limitações existentes em seus predecessores, o que facilitará ainda mais a implementação deste recurso em ambientes de produção com alta complexidade e grande exigência por performance.
Aplicaçõ ...