位置: 编程技术 - 正文

揭秘SQL Server 2014有哪些新特性(3)-可更新列存储聚集索引(揭秘蟹卡骗局)

编辑:rootadmin

推荐整理分享揭秘SQL Server 2014有哪些新特性(3)-可更新列存储聚集索引(揭秘蟹卡骗局),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:揭秘海鲜加工厂狠活,揭秘镀晶到底好在哪里,揭秘小区神秘敲墙声,揭秘成都大运会开幕式亮点,揭秘低价老年旅游团套路,揭秘镀晶到底好在哪里,揭秘镀晶到底好在哪里,揭秘海鲜加工厂狠活,内容如对您有帮助,希望把文章链接给更多的朋友!

简介

列存储索引其实在在SQL Server 中就已经存在,但SQL Server 中只允许建立非聚集列索引,这意味着列索引是在原有的行存储索引之上的引用了底层的数据,因此会消耗更多的存储空间,但中的限制最大的还是一旦将非聚集列存储索引建立在某个表上时,该表将变为只读,这使得即使在数据仓库中使用列索引,每次更新数据都变成非常痛苦的事。SQL Server 中的可更新聚集列索引则解决了该问题。

可更新聚集列存储索引?

聚集列存储索引的概念可以类比于传统的行存储,聚集索引既是数据本身,列存储的概念也是同样。将数据按照列存储而不是行存储则提供了诸多好处,

首先对于大量聚合、扫描、分组等数据仓库类查询仅仅需要读取选择的列,对于需要Join多个表的星型结构等场景性能提升尤其明显 其次是列索引可以更新,并且每个表中只需要一个(这是优点也是缺点,因为无法再建非聚集索引)聚集列索引即可,大大节省了空间 列索引由于是按列存储,同一列中数据类型是一样的,因此可以更加容易的实现更高的压缩比率 列存储的表会占用更少的存储空间,因此存在更少的IO

那么列存储索引有什么弊端呢?

行存储对于OLTP操作十分适合,因为每个聚集索引键可以标识某一行,该行存储在物理磁盘上也连续,因此可以利用Seek操作完成大量选择性非常高的查询,而列存储索引同一行的每一列并不在物理上联系,并且列存储聚集索引中并没有“主键”的概念,因此并不存在SEEK操作,如果大量OLTP类的查询,性能将会出现问题。

列存储索引只支持Scan操作,如图1所示。

图1.列存储索引只支持Scan操作

那么列索引是如何存储呢?

列索引存储可以望文生义,就是按列存储。这个过程可以分为3个阶段,首先将一堆行分组,这就是所谓的“行组”,分组完成后,再按列切分,最后将列压缩,如图2所示。

图2.列存储的过程

我们注意到其中有一部分不够分组的,那么就直接让这部分数据以传统行存储的形式老实呆着吧,这就是所谓的Deltastore,等数据增长到可以分组时再进行分组,目前SQL Server 认为W以下的数据都不够分组。

上述列存储的两部分我们可以通过新引入的DMV进行观测,如图3所示。在图3中,我们队目前已经存在行的聚集列索引插入了行新的数据,则SQL Server认为这部分数据不满W行,因此以Deltastore的方式存在。

图3.压缩后的列和Deltastore

揭秘SQL Server 2014有哪些新特性(3)-可更新列存储聚集索引(揭秘蟹卡骗局)

当我们再插入数据时,可以观察到DeltaStore中的数据又增加了,达到,但依然存在DeltaStore中。如图4所示。

图4.再次插入的数据依然在DeltaStore中

那么我插入大量的行进行观测,会发现,大批量的数据依然以DeltaStore的方式存储,如图5。

图5.插入大量数据后也无法将数据压缩

那么究竟何时会压缩这些数据呢,根据BOL的说法: 可更新列存储聚集索引的压缩比率是最高的,因为同一列往往是同一类数据,因此这类数据有更好的压缩比。现在我纯粹的从传统聚集索引、页压缩、行压缩、列存储索引所占用的空间进行比较,当然,如果我们把传统表的非聚集索引算上,那么行存储表将会需要更多的空间。我们用3W多条数据进行简单比对,如图7所示。

图7.不同存储占用空间

图7的示例数据很少,但依然可以看到,列存储比即使没有非聚集索引的行存储,占用空间也几乎少了2/3,提升不可谓不巨大。

性能简单比较

首先,先按照列存储,我们选择所有的列,对于行存储来说需要选择整个表才能把一列数据全部读取出来,但列存储则只需要读取被选择的列,因此如果只选择特定的列的话,列存储性能提升巨大,如图8所示。

图8.可更新列存储聚集索引性能提升巨大

但反之,我们尝试一个典型的OLTP操作,只选择一行的所有列,则会和图8的结果大相庭径了。如图9所示。

图9.对于OLTP操作来说,列存储索引非常乏力

小结

本文阐述了SQL Server 中可更新列存储索引的原理,概念,适用场景、空间使用情况,并举出两个OLAP和OLTP极端的例子进行性能比对。列存储索引对于数据仓库和类OLAP查询来说是一个巨大的飞跃。

揭秘SQL Server 有哪些新特性(4)-原生备份加密 SQLServerCTP2之后公布了一项针对备份的特性,那就是原生备份加密。考虑到之前网络上影响很坏的数据库泄漏事件,本质上都是数据库备份泄漏给第三

解决SqlServer 各版本 sa帐户不能登录问题 1.使用ManagementStudioExpress,用Windows身份验证登录,选中SQL服务器名,右击鼠标选择属性,在服务器属性选项页面,选择安全性,将服务器身份验证由Window

浅析SQL Server中包含事务的存储过程 先来看一个概念:数据库事务(DatabaseTransaction),是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不执行。那么在存储过程

标签: 揭秘蟹卡骗局

本文链接地址:https://www.jiuchutong.com/biancheng/319011.html 转载请保留说明!

上一篇:揭秘SQL Server 2014有哪些新特性(2)-固态硬盘 Buffer Pool(缓冲池) 扩展(揭秘蒙娜丽莎25恐怖之处)

下一篇:揭秘SQL Server 2014有哪些新特性(4)-原生备份加密(揭秘如何投屏纽约时代广场)

  • 什么情况下需要补牙
  • 员工外出办事报备制度
  • 未分配利润分配顺序
  • 信息采集需要填两个家庭成员,但只能有一个监护人
  • 小规模超过10万是全额交税吗
  • 隔年的发票能冲销吗
  • 季度所得税从业人员怎么填
  • 个人购买房产是指什么
  • 会计速动比率怎么算
  • 承包工程会计账务处理流程
  • 车子按揭利息
  • 不需要缴纳企业所得税的企业类型
  • 增值税负数如何计算
  • 开票多一分钱怎么办
  • 继续教育专项附加扣除需要什么材料
  • 出口退税函调是什么意思
  • 车间的制造费用包括哪些
  • 个税抵扣申报截止时间
  • win11如何设置开机自启动软件
  • 分公司特征表述正确的是
  • 公司债务转个人债务
  • 怎么激活win10专业版
  • 房地产项目公司是什么意思
  • 在建工程进项税额转出
  • 预收的购货款属于收入吗
  • 异构图神经网络 电影推荐
  • 制造业企业资金管理
  • mysql事务执行流程
  • 已销售未出库如何结转成本
  • uni-swiper-dot
  • 文心一言中国版
  • 阿里pv
  • 非公司员工可以举报公司不交社保吗
  • 上期未申报怎么办
  • 员工借现金分录
  • 物业会计账务处理大全
  • phpcms添加内容
  • php的默认网站目录是
  • 中药和中药饮片有区别吗
  • 使用sql server
  • 减值准备需要确认递延所得税资产吗
  • 利润表中本期金额是什么意思
  • 教育培训行业税目分类
  • 本年利润的会计分录
  • 企业所得税法开办费
  • 企业收到收据后怎么处理
  • 工会经费到底是什么
  • 记账凭证核算处理方法
  • 实收资本账务处理流程
  • 低值易耗品的管理流程
  • 代付电费开发票
  • 商业会计和财务会计
  • 员工外出培训报告范文
  • 外聘人员的劳务合同模板
  • 商场收租户电费会计分录
  • 物业公司付电业费合法吗
  • 打印银行电子流水发到别人邮箱,能看到我的账户余额吗
  • 为什么自创商誉不能确认
  • 多交的社保费可以退吗
  • 企业应付账款的借方余额反映的是
  • 工业企业会计与管理论文
  • 材料运费计入什么科目
  • 删除一组数据中的指定数据
  • mysql复制命令
  • mysql视图语句
  • win7全屏游戏怎么窗口化
  • 重装windows764 位后后如何将apache mysql加入系统服务
  • 苹果笔记本mac系列区别
  • linux Intel 845集成显示驱动下载
  • 炉石传说代码怎么导入
  • qt creator kit
  • linux 检查网络状态
  • 批处理文件中echo什么意思
  • python常见的格式化输出小结
  • python连接mysql实例分享
  • 安卓圆角矩形图标
  • 总结网络io模型的特点
  • 上海电子税务局怎么添加办税员
  • 八个点可以开出几张发票
  • 置换买新车划算吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设