Suponha que uma tabela contenha apenas números inteiros e tenha um índice columnstore agrupado.
CREATE TABLE cci_account
(
AccountKey int NOT NULL,
UnitSold int,
INDEX ColStore CLUSTERED COLUMNSTORE
);
então parece que somar uma coluna agrupada por outra é sempre rápido em tal tabela, por exemplo
SELECT
AccountKey,
SUM(UnitSold)
FROM
cci_account
GROUP BY
AccountKey;
Por que isso é tão rápido? Meu entendimento da arquitetura columnstore é que os segmentos que contêm AccountKey
não têm ideia de qual UnitSold
valor está em suas linhas. Como, então, o SQL Server consegue agrupar tão rapidamente por AccountKey
? Não consigo imaginar nenhum algoritmo que consiga isso.