位置: 编程技术 - 正文

揭秘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)-原生备份加密(揭秘如何投屏纽约时代广场)

  • 文化传媒公司的税种及税率
  • 一般纳税人收到普票可以抵扣吗
  • 党建经费可以用来干什么
  • 企业将重组债务转为权益工具
  • 居民个人根据各项所得的收入 公益捐赠
  • 票货分离怎么处理
  • pos机刷卡的银行有哪些
  • 电商平台收取会员费吗
  • 两笔不同业务能做一个凭证吗
  • 模具维修费用清单表格
  • 新建账套应收账款怎么填客户
  • 增值税纳税申报表电子版在哪下载
  • 生产企业开具加工费发票的问题
  • 纳税调增调减项目有哪些各站多少比例
  • 上年度退回来的所得税,怎么做分录
  • 发票查出来显示不一致是为啥
  • 中央空调销售与安装开票税率
  • 怎么解决百度打不开页面
  • 去年的费用今年报销如何记账
  • 支付借款利息怎么做账
  • Linux系统怎么设置常亮
  • 认定科技型中小企业简单吗
  • wamp搭建网站教程
  • cmos是bios参数设置的
  • 电脑一开机一会一会黑屏
  • linux tr
  • 进项抵扣发票如何查询
  • 委托银行收款的会计分录怎么写
  • 收到的税费返还减少说明什么
  • php储存数据的方法
  • 增值税专用发票怎么开
  • 进料加工贸易方式
  • 如何汇算清缴,会计新手求指教
  • php的execute
  • php打包phar
  • pdclient
  • 完美破费是什么意思
  • 看望职工家属可以计入福利费吗
  • 商业承兑汇票如何查询
  • 公司购买理财产品
  • 个体户税率征收
  • 出口生产型企业
  • 织梦常用调用标签
  • sqlServer查询当前ip地址
  • 其他债权投资减值为什么不影响所有者权益
  • 员工的医药费计入什么科目
  • 增值税发票系统客服电话
  • 老板让我做分公司负责人能接受么
  • 代开增值税额与实际缴款额差一分钱如何入账?
  • 坏账准备怎么做底稿
  • 进项税额抵扣如何做账
  • 行政单位拨出经费的规定
  • 劳务费入什么费用
  • 怎么做好流水账
  • 未分配利润是负数怎么消化掉
  • 做好年底冲刺
  • 企业发生装修费就计入长期待摊费用吗还是
  • 纳税人财务会计制度
  • 普票抵扣
  • 小规模纳税人是开专票还是普票
  • 增加委托代理人
  • sql server自定义类型怎么写入备机
  • win8系统任务栏怎么隐藏
  • win8专业版系统更改电脑设置没反应
  • freebsd 升级
  • ebr.ahrcu
  • linux基本使用
  • windows电脑图片传到iphone
  • 电脑windows8怎么样
  • ssh permission denied password
  • perl语句
  • ajax动态加载json数据
  • Unity3D值Input Manager
  • javascript概述及作用
  • shell可以多线程吗
  • unity备份工程
  • python语言中
  • jquery教程chm
  • 水利优惠政策
  • 税务登记证用来干嘛
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设