优化SqlServer–数据压缩

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

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

 

 

       

  

     

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119745.html原文链接:https://javaforall.net

(0)
上一篇 2021年11月25日 上午10:00
下一篇 2021年11月25日 上午10:00


相关推荐

  • DropDownList 详解「建议收藏」

    DropDownList 详解「建议收藏」DropDownList控件用于创建下拉列表。DropDownList控件中的每个可选项都是由ListItem元素定义的!提示:该控件支持数据绑定!DropDownList控件是一个下拉式的选单,功能和RadioButtonListWeb控件很类似,提供用户在一群选

    2022年7月18日
    17
  • ORB特征提取详解

    ORB特征提取详解ORB OrientedFAST 是一种快速特征点提取和描述的算法 这个算法是由 EthanRublee VincentRabau KurtKonolige 以及 GaryR Bradski 在 2011 年一篇名为 ORB AnEfficientA 的文章中提出 ORB 算法分为两部分 分别是特征点提取和特征点描述 特征提取是由 FAST Featuresfrom

    2026年3月19日
    3
  • 以太坊交易Nonce设置

    以太坊交易Nonce设置1 什么是 nonce 以太坊中的 nonce 有两个意义 1 工作量证明 为了证明工作量的无意义的值 这是采矿的本质 这个值将决定采矿的难度 2 账户的随机数 在一个账户中的防止多重交易的用途 例如一个交易从 A 到 B20 个币 可能从 A 到 B 发送多次 为了防止交易的重播攻击 每笔交易必须有一个 nonce 随机数 针对每一个账户 nonce 都是从 0 开始 当 nonce 为 0 的交易处理完之后 才会处理 nonce 为 1 的

    2026年3月18日
    2
  • Qt多线程实例与connect第五个参数[通俗易懂]

    Qt是一个GUI框架,在GUI程序中,主线程也叫GUI线程,因为它是唯一被允许执行GUI相关操作的线程。对于一些耗时的操作,如果放在主线程中,就是出现界面无法响应的问题。解决方法一:在处理耗时操作中频繁调用QApplication::processEvents()。这个函数告诉Qt去处理那些还没有被处理的各类事件,然后再把控制权返还给调用者。QElapsedTimeret;…

    2022年4月8日
    87
  • Python Django 搭建文件下载服务器[通俗易懂]

    本文仅供学习交流使用,如侵立删!联系方式及demo下载见文末PythonDjango搭建文件下载服务器环境win10Python:3.6.7Django:2.2.7运行效果1、创建Django项目#创建Download项目django-adminstartprojectDownload#创建down_appapppythonmanage.pystartappdown_app2、修改配置文件:settings.pyDownload/D

    2022年4月12日
    236
  • 关于路由器自定义 3322.org 的DDNS

    关于路由器自定义 3322.org 的DDNS首先,3322.org,现在官网地址为:http://www.pubyun.com/注册用户后,如果支持3322的路由器,可以直接设置。不支持的路由就要想办法自定义了。3322的DDN

    2022年7月2日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号