A ordem das colunas em um índice columnstore é importante?

12

Eu tenho uma tabela com ~ 200 milhões de linhas e ~ 15 colunas nela. Estou planejando criar um COLUMNSTOREíndice na minha tabela.

Haverá alguma alteração no desempenho com base na ordem das colunas que eu uso no índice columnstore? Se sim, qual é a lógica por trás disso?

Vinay Kumar Chella
fonte
11
Duplicado de: stackoverflow.com/q/9971012/877069
Nick Chammas

Respostas:

15

Não, a ordem não importa. Cada coluna é considerada individualmente.

Da equipe do SQL Server (ênfase adicionada):

Normalmente, você deseja colocar todas as colunas na sua tabela no índice columnstore. Não importa em que ordem você lista as colunas, porque um índice columnstore não possui uma chave, como o índice B-tree. Internamente, os dados serão reordenados automaticamente para obter a melhor compactação.

Aaron Bertrand
fonte
Não existe um conceito de colunas de alta densidade que devem ser as primeiras na ordem e colunas de baixa densidade devem ser as últimas na ordem. As colunas usadas com frequência devem ser as primeiras da ordem.
Vinay Kumar Chella
11
Não que eu saiba - os índices columnstore não funcionam como os índices tradicionais da árvore B.
Aaron Bertrand
Está bem. Eu ouvi em alguma conferência, mas não encontrei nenhuma fonte para isso. Vamos esperar por mais alguns comentários ...
Vinay Kumar Chella
2

ordem não importa, o que importa se você deve incluir TODAS as colunas da tabela base no índice columnstore - mais através da minha resposta anterior a esta pergunta aqui

Lynn Langit
fonte
0

Existe uma excelente resposta de Aaron a partir de 2012, para expandir ...

Com o SQL 2014+, você tem índices columnstore clusterizados disponíveis. Ao criar um índice columnstore clusterizado, não há opções de seleção ou ordem de coluna disponíveis. Índices Columnstore Descritos

James Jenkins
fonte