假设一个表只包含整数并且具有聚集列存储索引。
CREATE TABLE cci_account
(
AccountKey int NOT NULL,
UnitSold int,
INDEX ColStore CLUSTERED COLUMNSTORE
);
那么看起来,在这样的表中,对一个列按另一个列分组求和总是很快,例如
SELECT
AccountKey,
SUM(UnitSold)
FROM
cci_account
GROUP BY
AccountKey;
为什么这么快?我对列存储架构的理解是,包含的段AccountKey
不知道UnitSold
其行上的值是什么。那么,SQL Server 如何能够如此快速地分组AccountKey
?我无法想象任何算法可以实现这一点。