【SQL Server性能优化】SQL Server 2008之表压缩

当数据库比较大,而要进行备份时,我们可以启动数据库备份的压缩,这样减少对于磁盘空间的消耗。

其实,不仅可以在备份的时候压缩,在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、表压缩后的对比

从1中可以看到,压缩前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效率。

时间: 2024-12-28 01:25:58

【SQL Server性能优化】SQL Server 2008之表压缩的相关文章

大话SQL Server性能优化(MSSQL高并发、性能调控、实践)

大话SQL Server性能优化(MSSQL高并发.性能调控.实践)网盘地址:https://pan.baidu.com/s/1KxdfcQD0XGD3M2ja_Y7UWQ 提取码:435v备用地址(腾讯微云):https://share.weiyun.com/5dTuZJ9 密码:xhmge4 本课程源于一家国内较知名的ERP厂商的一款产品出现性能问题后通过咨询服务解决了性能问题,然后根据自身多年技术培训.项目开发.产品研发与运维管理.软件公司内部咨询等经验,整理了在SQL Server 20

【SQL Server性能优化】运用SQL Server的全文检索来提高模糊匹配的效率

原文:[SQL Server性能优化]运用SQL Server的全文检索来提高模糊匹配的效率 今天去面试,这个公司的业务需要模糊查询数据,之前他们通过mongodb来存储数据,但他们说会有丢数据的问题,我从业务上了解到,显然对他们公司而言,丢数是绝对不能允许的. 另外,他们说之前也用过SQL Server的全文检索,但速度不够快,不如用mongodb快,当然我不太清楚他们所谓快的具体定义,比如查询只需要1秒,还是1分钟.他们的系统现在采用的是SQL Server,通过复制来实现高可用性,因为他们

Sql Server 性能优化之包含列

Sql Server 性能优化之包含列 导读:数据数优化查询一直是个比较热门的话题,小生在这方面也只能算是个入门生.今 天我们就讲下数据库包含列这个一项的作用及带来的优化效果 引用下MSDN里面的一段解释: 当查询中的所有列都作为键列或非键列包含在索引中时,带有包含性非键列的索引可以显 著提高查询性能. 这样可以实现性能提升,因为查询优化器可以在索引中找到所有列值:不 访问表或聚集索引数据,从而减少磁盘 I/O 操作 上面这一段什么意思呢? 意思就是说设置好包含列,能提高查询性能,减少IO输出.

SQL Server 性能优化(一)——简介

原文:SQL Server 性能优化(一)--简介 一.性能优化的理由: 听起来有点多余,但是还是详细说一下: 1.节省成本:这里的成本不一定是钱,但是基本上可以变相认为是节省钱.性能上去了,本来要投入的硬件就可以减缓投入,从另外一个角度看来它就是节省了钱. 2.增加效率:对于客户来说,性能上去了,他们的工作效率也高了. 3.降低挫折感:性能底下,客户抱怨,无疑是对自己心灵上的打击. 二.性能误区: 性能误区 误区 现实 如果处理器使用率很高,那么需要添加更快的处理器 某一部分导致了性能问题 8

SQL语句性能优化--LECCO SQL Expert

SQL语句的优化是将性能低下的SQL语句转换成目的相同的性能优异的SQL语句. 人工智能自动SQL优化就是使用人工智能技术,自动对SQL语句进行重写,从而找到性能最好的等效SQL语句. 数据库性能的优化   一个数据库系统的生命周期可以分成:设计.开发和成品三个阶段.在设计阶段进行数据库性能优化的成本最低,收益最大.在成品阶段进行数据库性能优化的成本最高,收益最小. 数据库的优化通常可以通过对网络.硬件.操作系统.数据库参数和应用程序的优化来进行.最常见的优化手段就是对硬件的升级.根据统计,对网

Oracle DBA数据库高级工程师(下部)SQL语言+性能优化+数据复制

套餐介绍: Oracle DBA数据库高级工程师(下部)SQL语言+性能优化+数据复制 http://edu.51cto.com/pack/view/id-973.html 描述 Oracle DBA数据库高级工程师培训课程是风哥独自研发的精品实战课程,本路线图主要是让大家快速就业.高薪就业.课程内容以实战为主(占98%),理论为辅(占2%).本课程知识全面系统实用,结合风哥十年Oracle经验,囊括企业用到的所有知识点,课程包含大量实战案例,涉及Oracle核心技术及底层研究,从零开始学习Or

性能优化——SQL语句(续)

上篇博客介绍了一下自己在项目中遇到的一种使用sql语句的优化方式(性能优化--SQL语句),但是说的不够完整.在对比的过程中,没有将max函数考虑在内,经人提醒之后赶紧做了一个测试,测试过程中又学到了不少的东西.现给大家分享一下 上次用的是select count(*) 和select * 的执行效率问题,因为我的需求是获取数据的一个总数来自动给出新的id,然后网友给出可以使用max的方式给出新id.其实这也是一种不错的思路(当时我们也用过该函数,只不过因为系统数据本身问题,不适合用该函数),然

SQL之性能优化

 在实际应用中,数据库中的数据会有很多,若要从这些数据表中检索数据,就需要对系统进行优化,提高数据库系统的响应速度,下面就是日常一些查询优化的方法. 1.创建索引 索引可以提高数据库查询的速度,提高数据库的访问性能,但同时也会影响数据更新操作(例如插入.修改.删除)的速度. 如果WHERE子句中经常用到的某一列或者某几列创建索引 为数据表中经常需要执行排序操作的列创建索引 多表连接时,应该为数据表的连接列创建索引 对于需要不断更新的列,则不建议创建索引 2.优化查询语句 避免在SELECT语

VMWare ESX Server性能优化

VMWare ESX Server性能优化 vmware ESX server 是当前服务器市场上基于intel平台的最流行的虚拟软件产品.对比其他虚拟软件产品,如 GSX server 和ms virtual server,ESX的最大优点就是可以大大减少host系统所占用资源的.ESX server内核直接运行在硬件之上,而且系统稳定性和性能都有很大的提高. ESX server也很适合企业级应用,因为它支持重要的冗余功能,比如多路经,以及链路绑定.由于有诸如p2v vmotion 和vir

【SQL Server性能优化】SQL Server 2008该表压缩

当数据库是比较大的,而当你想备份,我们可以启动数据库备份压缩.这项由于备份文件比较小的压缩,所以整个备份的更快的速度,同时还低了磁盘空间的消耗. 当然还有一方面.肯定会添加cpu的消耗.只是一般的server都是多核.所以实际上对系统不会有大的影响. 事实上.不仅能够在备份的时候压缩,在SQL Server 2008中.我们还能够对表和索引进行压缩,以下通过压缩前.压缩后的比較.来展示SQL Server 2008强大的表及索引的压缩功能. 这里在公司測试数据库找了一个中型的表,共同拥有943万