数据压缩是对存储和性能优势的加强。减少数据库占用的磁盘空间量将减少整体数据文件存储空间,在一下几个方面增加吞吐量:

1.更好的I/O利用率,每个页面可以读写更多的数据。

2.更好的内存利用率,缓冲区可以缓存更多的数据。

3.减少页面的闭锁,每个页面可以包含更多数据。

由于数据压缩必须考虑I/O 和CPU之间的平衡,压缩和解压缩都需要CPU处理。因此数据压缩对于旧数据和不经常查询的数据更有意义。

这里我们主讨论两种压缩:一是行压缩;二是页面压缩。

行压缩:压缩可以改变格式的存储固定值数据类型--也就说包含一个字节的值的4字节列可以压缩为1字节,1字节的列不能再压缩,但是null和0值不占字节。

  语法: 创建 create table 表名()with (DATA_COMPERSSION=ROW)

添加 ALTER TABLE 表名 REBUILD with (DATA_COMPERSSION=ROW)

页面压缩:页面压缩在实现行压缩的前提下,还实现了两种压缩,一是前缀压缩(对于每个页面和列来说前缀值都是相同的,可用来减少存储的需求,通过引用来取代重复的前缀);二是字典压缩(搜索页面中的重复值,这被对CI的引用取代)。

语法: 创建 create table 表名()with (DATA_COMPERSSION=PAGE)

添加 ALTER TABLE 表名 REBUILD with (DATA_COMPERSSION=PAGE)

   估计节省空间:语法 sp_estimate_data_compression_savings

[@schema_name=]--架构名称

,   [@object_name=]--有索引的表或者索引视图的名称。

,   [@index_name=]--索引ID号

,   [@partition_number=]--对象分区号,null表示非分区

,   [@data_compression=] --压缩类型(none\row\page)

[;]

 监控数据压缩:windows性能监视的sqlserver:access method 对象中有两个计数器:

Page compression attempts/sec:计算每秒进行页面压缩尝试的次数;

Pages compressed/sec:计算每秒压缩的页面数。

最后还要注意数据压缩的注意事项:

        1.启用和禁用表或群集索引压缩会重构所有费群集索引。

2.不能在稀疏列中使用压缩。

3.超出行的LOB 不能压缩。

4.索引中的非叶子也只能使用行压缩进行压缩。

5.非群集索引不继承标的压缩设置。

6.再删除群集索引时,表将保持这些压缩设置。

7.除非特别指定,创建群集索引将继承表的压缩设置。

 总结: 我们已经了解了基本的使用方式和一些注意事项,通过压缩实现高性能的数据库系统。同时我们还要兼顾一些硬件成本,最后我们还要注意的是对于高可用性系统,改变压缩设置可能会产生额外的事务日志操作。

       

转载于:https://www.cnblogs.com/wenBlog/p/4599029.html

优化SqlServer--数据压缩相关推荐

  1. 浅谈优化SQLServer数据库服务器内存配置的策略

    引文 http://demo.nbarticle.com/view/2004/8/9/view_1827.htm 农业银行总行1998年以来正式推广了新版网络版综合业务统计信息系统,该系统是基于Win ...

  2. Sqlserver (优化Sqlserver数据库)页分裂 和填充因子

    页分裂 概念 不管是聚集索引 还是非聚集索引 我们在插入数据后 难免的会对数据增删改 那么我们涉及到一个问题 我们建立的索引会因为数据的变动 而变得混乱 比如 下面 聚集索引 如果我insert 了1 ...

  3. sql server服务器物理内存满,浅谈优化SQLServer服务器内存配置

    内存是影响Microsoft SQL Server系统性能的一个重要因素,SQL Server数据库安装时将为具有32MB物理内存的机器缺省配置16MB可用内存,16MB物理内存的机器缺省配置4MB可 ...

  4. SQLServer优化资料整理(二)

    存储过程编写经验和优化措施 一.适合读者对象:数据库开发程序员,数据库的数据量很多,涉及到对SP(存储过程)的优化的项目开发人员,对数据库有浓厚兴趣的人. 二.介绍:在数据库的开发过程中,经常会遇到复 ...

  5. 做好DBA,做好SQLServer性能优化

    怎样查出SQLServer的性能瓶颈 --王成辉翻译整理,转贴请注明出自微软BI开拓者[url]www.windbi.com[/url] --原帖地址 如果你曾经做了很长时间的DBA,那么你会了解到S ...

  6. Sqlserver数据库性能优化

    很久没有写文章了,在系统正式上线之前,DBA一般都要测试一下服务器的性能 比如你有很多的服务器,有些做web服务器,有些做缓存服务器,有些做文件服务器,有些做数据库服务器 做数据库服务器的那台服务器性 ...

  7. 程序猿是如何解决SQLServer占CPU100%的

    文章目录 遇到的问题 使用SQLServer Profiler监控数据库 SQL1:查找最新的30条告警事件 SQL2:获取当前的总报警记录数 有哪些SQL语句会导致CPU过高? 查看SQL的查询计划 ...

  8. mysql最大述_MySQL优化(1):Mysql简述

    一.逻辑架构 MySQL也采用分层架构.插件式的存储引擎架构将查询处理和其他的系统任务以及数据的存取相分离,这样就可以根据业务需求来选择适合的存储引擎. 1.层次结构 连接层 -- 业务逻辑处理层(处 ...

  9. 怎样查出SQLServer的性能瓶颈

    --王成辉翻译整理,转贴请注明出自微软BI开拓者[url]www.windbi.com[/url] --原帖地址 如果你曾经做了很长时间的DBA,那么你会了解到SQLServe的性能调优不是一个精密的 ...

  10. sqlserver相关资料

    一.SQL Server升级和安装 从SQL Server2000升级到2005总结 http://www.itpub.net/viewthread.php?tid=946369&extra= ...

最新文章

  1. win8更改计算机账户密码忘记了怎么办,密码忘记怎么办?WIN8平板电脑如何重置密码?...
  2. ProtoBuffer由.proto文件生成.cc/.h
  3. PostgreSQL创建一个数据库
  4. soso街景开发——在移动应用(网站)中的应用
  5. oracle最新版本是多少_运维日记|关于Oracle的补丁你需要知道的事
  6. 安卓航班Android开发经典教程大总结1----基础编程及源码推送
  7. C#基础18:内置委托类型Action和Func
  8. Quartus17报错Top-level design entity “dff“ is undefined的解决办法
  9. 六石管理学:培训重点应该是工作技能
  10. paip.提升用户体验---业务SQL注入漏洞的分析与解决
  11. mysql查看enum和set值_mysql中的enum和set类型_MySQL
  12. QGraphicsItem实现动态蝴蝶(QT5开发及实例)
  13. 【转】objective-c基本数据类型之输出格式符
  14. 像素和分辨率是什么?
  15. debian重启ssh服务_EUserv 德国永久免费VPS申请,仅有IPv6网络 另附IPv6服务器建站教程...
  16. 房贷放松:银行态度暧昧 地方暗中先行
  17. CSS秘密花园: 沿着路径的动画
  18. 新发现的Web服务-----免费服务
  19. GItHub频繁验证邮箱?Please verify your email address????
  20. 详解asp.net邮件收发系统

热门文章

  1. 微软摊开 AI 高分作业,在线求抄
  2. 全球十大AI训练芯片大盘点:华为昇腾910是中国唯一入选
  3. 腾讯AI击败王者荣耀职业队,全靠自学、策略清奇,一天训练量为人类440年
  4. 一个锁等待现象的诊断案例
  5. Python数据科学-技术详解与商业实践视频教程
  6. 容器生态系统 - 每天5分钟玩转容器技术(2)
  7. ThinkPHP5 Model分层及多对多关联的建立
  8. PyQt 编程基本思想-HelloWorld
  9. 采集音频和摄像头视频并实时H264编码及AAC编码[转]
  10. Oracle可以处理LOB字段的常用字符函数