SQL Server 2012引入了列存储索引,对每列的数据进行分组和存储,然后联接所有列以完成整个索引.这不同于传统索引,传统索引对每行的数据进行分组和存储,然后联接所有行以完成整个索引. 在访问基于行存储的索引时,如果要查询一个字段需要将整个Page读入内存,所以默认会读到所有行的数据: 通过上面的图片可以看出,如果一个查询只想查询字段A的值,代价是读取所有的页面,包括了不需要的字段B,C,D,E. 与行存储模式相比,使用列存储只需要读取单独的列数据,这样可以减小IO的消耗,同时提供缓存的使…