当前位置: 首页 > news >正文

优化SqlServer--数据压缩

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

     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.除非特别指定,创建群集索引将继承表的压缩设置。

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

 

 

       

  

     

 

相关文章:

  • devexpress chart 柱形图
  • 我的电脑搜索这个功能不能打开
  • VS2010性能监视工具
  • Silverlight和WPF开发人员必须具备以下十大开发技能
  • 满足需求为第一位
  • 窗体信息处理函数讲解
  • 易宝典文章——如何配置Windows Live Mail使用连接Exchange邮箱
  • 关于 UIImageView
  • [原创]什么是信息安全资产管理?
  • http 状态代码表
  • 浅谈项目与产品的区别
  • css 一些常用属性总结
  • 玩《DOTA》有感
  • 会话EJB完整开发过程(以weblogic为服务器)
  • Oracle 基础篇 --- 表删除
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 【comparator, comparable】小总结
  • CSS中外联样式表代表的含义
  • Docker容器管理
  • download使用浅析
  • es6要点
  • java8 Stream Pipelines 浅析
  • magento 货币换算
  • Rancher-k8s加速安装文档
  • sublime配置文件
  • Terraform入门 - 3. 变更基础设施
  • Webpack 4 学习01(基础配置)
  • Webpack入门之遇到的那些坑,系列示例Demo
  • windows下mongoDB的环境配置
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 关于Flux,Vuex,Redux的思考
  • 诡异!React stopPropagation失灵
  • 基于HAProxy的高性能缓存服务器nuster
  • 学习笔记:对象,原型和继承(1)
  • scrapy中间件源码分析及常用中间件大全
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • ​卜东波研究员:高观点下的少儿计算思维
  • ​香农与信息论三大定律
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (function(){})()的分步解析
  • (Java数据结构)ArrayList
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (附源码)ssm高校实验室 毕业设计 800008
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (四)c52学习之旅-流水LED灯
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)可以带来幸福的一本书
  • (轉)JSON.stringify 语法实例讲解
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • ./configure、make、make install 命令