- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQLServer列式存储的原理及应用课案
基于SQL Server列式存储的原理及应用;目录;1.1 什么是列存储
在SQL Server里,“页”是数据存储的基本单位。记录数据时,在逻辑上组织为包含行和列的表,在物理上按列数据格式存储的数据,称为列存储。
磁盘的每个“页”仅存储来自单列的值,一行数据存储在多个“页” 内。由于单列的数据类型一致,使得数据压缩算法更加高效,占用物理磁盘空间相对减少。
;1.2 列存储技术的主要特征
?每次对一个列的数据进行分组和存储。SQL Server 查询处理可以利用新的数据布局,并显著改进查询执行时间。
?列存储索引由于以下原因而可更快地生成结果:
?多数查询并不会涉及表中的所有列,只需读取需要的列。因此,从磁盘读到内存、然后移到处理器缓存中的数据量减少了,同时减少总 I/O 。
?列经过了高度压缩。这将减少必须读取和移动的字节数。
?高级查询执行技术以???化的方法处理列块(称为“批处理”),从而减少 CPU 使用率。
?如果基表为聚集索引,则聚集键中的所有列必须出现在非聚集列存储索引中。 如果在 CREATE INDEX 语句中未列出聚集键中的某列,该列将自动添加到列存储索引中。
?使用表分区时,针对分区表的列存储索引必须与基表实现分区对齐。 因此,如果分区列为列存储索引中的一列,则非聚集的列存储索引只能在已分区表上创建。
;1.3 列存储的过程
为获得高性能和高压缩率,列存储索引首先将表划分为由行构成的组,称为行组,然后按列切分,最后按列压缩每个行组(如下图)。其中部分不足以分组的数据,以传统行存储的形式存储,这就是所谓的“增量存储” (Deltastore),等数据增长到可以分组时再进行分组。
“增量存储”仅用于聚集列存储索引,它是一个聚集索引,可以不断地存储行,并在行数达到某个阈值后,将行移入列存储,从而提高列存储压缩率和性能。为提高压缩率,行组中的行数必须足够大,并且还要足够小,以便从内存中操作中受益。每个行组通常可包含的最大行数是 1,048,576 行,最小行数为102,400 行。在“增量存储“达到最大行数后,它会关闭。 元组移动进程会检查是否有已关闭行组。 在它找到已关闭行组后,会对其进行压缩并且将其存储到列存储中。;目录;2.1 列存储索引的种类
列存储索引,SQL Server2012引入非聚集列存储索引; SQL Server2014增加聚集列存储索引;SQL Server2016加强
了聚集列存储索引的功能(使用者可指定索引;增加快照和读提交隔离级别;索引碎片整理;批量模式的增强);2.2 为什么使用列存储索引
列存储索引可提供极高的数据压缩级别(通常是传统方法的 7-10 倍),从而明显降低数据仓库存储成本。
此外,对于分析,它们提供的性能比 btree 索引高出一个量级,可对数据仓库最多提高 10 倍查询性能。 它们是数据仓库和分析工作负载的首选数据存储格式。 从 SQL Server 2016 开始,可以使用列存储索引对操作工作负荷执行实时分析。
列存储索引速度较快的原因
?列存储来自同一个域的值,并且通常具有相似的值,从而提高了压缩率。 这可以最大程度地减少或消除系统中的 IO 瓶颈,同时大大减少内存占用量。
?较高的压缩率通过使用更小的内存中空间提高查询性能。
?批处理执行可同时处理多个行,通常可将查询性能提高 2-4 倍。
?查询通常仅从表中选择几列,这减少了从物理介质的总 I/O。
;2.3 何时应使用列存储索引
行存储索引最适合用于查找数据、有哪些信誉好的足球投注网站特定值的查询,或者针对较小范围的值执行的查询。 可对事务工作负载使用行存储索引,因为这些工作负载往往需要进行表查找而不是表扫描。
对于扫描大量数据(尤其是大型表中)的分析查询,列存储索引可提高性能。 可对数据仓库和分析工作负载(尤其是对事实数据表)使用列存储索引,因为它们往往需要进行全表扫描而不是表查找。
行存储表创建列存储索引
从 SQL Server 2016开始,你可以在行存储表上创建可更新的非聚集列存储索引。 列存储索引将存储所选列的副本,因此只需要为此准备额外的空间,但是数据的压缩率平均可提高 10 倍。 如果采取这种做法,你可以同时对列存储索引以及行存储索引上的事务运行分析。 当行存储表中的数据更改时,列存储将会更新,因此这两个索引适用于相同的数据。
列存储索引使用行存储索引
从 SQL Server 2016开始,你可以对一个列存储索引使用一个或多个非聚集行存储索引。 这样,便可以针对基础列存储上执行有效的表查找。 其他选项也可供使用。 例如,可以通过在行存储表中使用 UNIQUE 约束来强制主键约束。 由于不唯一的值无法插入行存储表,SQL Server 无法将值插入列存储。
列存储索引不适用的场景
列
您可能关注的文档
- 加强客专施工安全管理课件.ppt
- 加多宝最牛的路演活动总结.ppt
- SPSS基本统计分析.pptx
- 加强直流屏蓄电池的维护,提高直流控制系统的稳定性.ppt
- Spring事务配置管理.ppt
- SPSS回归分析案例.docx
- SPSS基本操作.ppt
- spss_数据正态分布检验_Q.doc
- 加强基层医疗机构院感控制防控能力5.ppt
- Special.pptx
- 2025年中国三相普通马达市场调查研究报告.docx
- [淮安]2023年江苏淮安市第一人民医院招聘高层次人才10人笔试历年典型考点(频考版试卷)附带答案详.docx
- 2025年生肖杯项目可行性研究报告.docx
- 2025至2030年中国微机测控式电子拉力试验机数据监测研究报告.docx
- [海口]2023年海南海口市龙华区事业单位招聘49人笔试历年典型考点(频考版试卷)附带答案详解.docx
- 2025至2031年中国水松纸激光打孔机行业投资前景及策略咨询研究报告.docx
- [温州]2024年浙江温州市双屿中学编外教师招聘(二)笔试历年典型考点(频考版试卷)附带答案详解.docx
- [深圳]2024年广东深圳市光明区新湖街道选聘第二批特聘专干笔试历年典型考点(频考版试卷)附带答案详.docx
- [海西]2024年青海海西州消防救援支队招聘政府专职消防队员27人笔试历年典型考点(频考版试卷)附带.docx
- 交通工作未来工作规划计划总结汇报PPT课件.pptx
文档评论(0)