设为首页 收藏本站
查看: 658|回复: 0

[经验分享] 【SQL Server性能优化】SQL Server 2008之表压缩

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-9-5 09:19:05 | 显示全部楼层 |阅读模式
当数据库比较大,而要进行备份时,我们可以启动数据库备份的压缩,这样由于压缩后备份文件更小,所以整个备份的速度更快,同时也减少了磁盘空间的消耗。当然另一方面,肯定会增加cpu的消耗,不过一般的服务器都是多核,所以实际上对系统不会有大的影响。


其实,不仅可以在备份的时候压缩,在SQL Server 2008中,我们还可以对表和索引进行压缩,下面通过压缩前、压缩后的比较,来展示SQL Server 2008强大的表及索引的压缩功能。


这里在测试数据库找了一个较大的表,共有9439661条记录。


1、压缩前表的大小



    SP_SPACEUSED 'TB_WCB'  
      
    /*  
    name                rows        reserved    data       index_size   unused  
    TB_WCB              9439661     746016 KB   412216 KB   329944 KB   3856 KB  
    */  


2、压缩表

这里启用的是row 级别的压缩



    ALTER TABLE TB_WCB  
    rebuild  
    WITH (DATA_COMPRESSION =ROW)  


3、压缩后的表大小



    SP_SPACEUSED 'TB_WCB'  
      
    /*  
    name                rows        reserved    data       index_size   unused  
    TB_WCB              9439661     497784 KB   167168 KB   328120 KB   2496 KB  
    */  


4、表压缩前后的对比

压缩前data大小是412M,而在压缩后是 167M,压缩后表的大小只是原来表的40%,效果很明显,而且由于这个表中大部分字段只是id,相对而言重复值还不算多的,如果重复值更多,那么压缩效果会更好。


但是,我们看到,索引的大小基本上没什么变化,于是我们继续进行索引的压缩:


5、压缩索引



    alter index IDX_TB_WCB_ID on TB_WCB  
    rebuild  
    with(data_compression=row)  


6、索引压缩后的对比



    SP_SPACEUSED 'MS_VISIT_QST_OPT'  
      
    /*  
    name                rows        reserved    data        index_size  unused  
    TB_WCB              9439661     317208 KB   167168 KB   149872 KB   168 KB  
    */  


我们发现,索引压缩前大小是329M,而在压缩后是 149M,压缩比例为45%,效果也很明显。


总结:

通过表和索引的压缩,我们可以减小表占用的磁盘空间,这个只是一部分,更重要的是,读取同样多的数据,只需要读取更少的数据页,也就是只需要更少的IO,那么读取速度肯定会更快,而且由于占用的空间小了,也可以让更多的数据页缓存到内存中,进一步提高系统的整体性能。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-24481-1-1.html 上篇帖子: Myeclipse10.7连接SQL Server数据库技术 下篇帖子: Sql2008 复制 发布 订阅 (数据同步)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表