Columnstoreindex列数据如何匹配成行数据.docxVIP

  • 1
  • 0
  • 约 2页
  • 2017-04-30 发布于安徽
  • 举报

Columnstoreindex列数据如何匹配成行数据.docx

Columnstoreindex列数据如何匹配成行数据.docx

SQL Server 2012引入了列存储索引,对每列的数据进行分组和存储,然后联接所有列以完成整个索引。这不同于传统索引,传统索引对每行的数据进行分组和存储,然后联接所有行以完成整个索引。 ? 在访问基于行存储的索引时,如果要查询一个字段需要将整个Page读入内存,所以默认会读到所有行的数据: 通过上面的图片可以看出,如果一个查询只想查询字段A的值,代价是读取所有的页面,包括了不需要的字段B,C,D,E。 ? 与行存储模式相比,使用列存储只需要读取单独的列数据,这样可以减小IO的消耗,同时提供缓存的使用。 但是列存储索引是如何在磁盘存储的?如果我们只是将列的数据存储在一起,如何在查询的时候重新创建成行数据。 ? 举个例子:如果字段“名称”存储了“Kevin”和“Allen”两个值,“生日”栏位存储了和“。那么我们在查询的时候如何能够将Kevin和??日匹配起来。 ? 答案是数据的位置标明它属于哪一行。因此在“名称”字段中行1存储了“Kevin “,在“生日”栏位中第一行对应的存储了。依次类推,这样查询的时候就可以将所有的栏位匹配为对应的行。

文档评论(0)

1亿VIP精品文档

相关文档