Índices clusterizados e columnstore
Acabei de começar um novo trabalho em que temos muitas tabelas de processos ETL. Disseram-me para não colocar nenhum columnstore ou índice de cluster em nenhuma tabela, pois o servidor não tem recursos (CPU). Então, basicamente, tudo é um monte. Existem índices não agrupados em muitas tabels. Recebemos dados de muitos sistemas de origem e depois que os dados chegam, transformamos os dados e os combinamos ...
Só quero saber se parece correto em algumas configurações não usar nenhum columnstore ou índice clusterizado. É necessário mais CPU para usar índices clusterizados quando as tabelas são usadas para análises?
Respostas
Quase toda decisão de implementação é uma troca entre fatores concorrentes. A construção de um índice columnstore consome muita CPU, mas depois as consultas que tocam em muitas linhas são rápidas e as atualizações são lentas. O que é mais importante para sua carga de trabalho, em média? Existe uma janela de tempo em que essa quantidade de CPU pode ser consumida sem quebrar outras partes do sistema? O custo adicional é reembolsado em benefício futuro? Qual é o problema para o qual um columnstore é a solução e isso foi abordado em outros aspectos do sistema?
Você menciona ETL. Freqüentemente, essas tabelas são processadas apenas como varreduras, onde cada linha é tocada por cada operação. Nesses casos, os índices retardarão o processamento porque devem ser gravados além da tabela.
Provavelmente há razões para as restrições atuais. Entenda por que eles foram colocados em prática. Se essas circunstâncias não forem mais válidas (talvez uma atualização da versão do servidor ou um hardware melhor agora), tente um experimento em um ambiente de teste.