设为首页 收藏本站
查看: 925|回复: 0

[经验分享] SQL Server 2012 列式索引介绍

[复制链接]

尚未签到

发表于 2018-10-16 06:21:44 | 显示全部楼层 |阅读模式
  SQL Server 2012 通过采用列式存储的索引,大大提高了数据仓库的查询效率。这种全新的索引与其它新功能相结合,在一些特定应用场景下可以将数据仓库的查询性能提高数百倍甚至数千倍,对于一些决策支持类的查询,通常也可以达到10倍左右的性能提升。这些性能的提升,都是通过大家所熟悉的T-SQL语句以及SQL Server管理界面所实现的,因此可以和包括SQL Server Reporting Services在内的所有报表解决方案完全兼容。
  列式索引将每一列单独存储在一组磁盘页中,而不是像传统方式那样在每个页中存储多个行。我们通常使用“行存储”来描述每个页中包含多行数据的堆或者B树结构。采用列式存储时,列将存储在不同的页组中,这样存储将带来以下好处:
  . 只有查询所涉及到的列才会从磁盘中获取出来(在典型的事实数据表中,查询所涉及到的列不会超过总列数的15%)
  . 由于每个列中都会有大量重复数据,因此这种数据结构更便于进行压缩
  . 数据经过高度压缩后,缓冲区的命中率将大大提高,并且访问频繁的列将缓存在内存中,而访问不频繁的列则不会长时间占用内存
  SQL Server 2012 列式索引采用“纯粹”的列式存储,而非混合模式,因为不同列中的所有数据将会分开存储在不同的页中,这样一来I/O扫描的性能以及缓冲区的命中率将会大幅提升。SQL Server是大型数据库产品中第一个支持纯列式索引的产品。虽然其它厂商声称市场上大规模使用的数据库产品不可能提供纯列式存储技术,但很荣幸我们做到了这一点!
  使用列式索引
  为了提高查询性能,您所要做的就是针对数据仓库中的事实表创建列式索引。如果有非常大的维度表(比如超过1000万条记录),您可以为其创建列式索引。接下来,您只需要向SQL Server提交查询,然后查询的速度将会大大加快。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-622026-1-1.html 上篇帖子: SQL Server中关于的checkpoint使用说明 下篇帖子: SQL Server的一些易头晕的术语
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表