【SQL Server性能优化】SQL Server 2008该表压缩
当数据库是比较大的,而当你想备份,我们可以启动数据库备份压缩。这项由于备份文件比较小的压缩,所以整个备份的更快的速度,同时还低了磁盘空间的消耗。
当然还有一方面。肯定会添加cpu的消耗。只是一般的server都是多核。所以实际上对系统不会有大的影响。
事实上。不仅能够在备份的时候压缩,在SQL Server 2008中。我们还能够对表和索引进行压缩,以下通过压缩前、压缩后的比較。来展示SQL Server 2008强大的表及索引的压缩功能。
这里在公司測试数据库找了一个中型的表,共同拥有943万多条记录。
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、表压缩前后的对照
压缩前数据大小是412M(data字段的值就是表数据的大小,而index_size是索引的大小,两者是不同的),而在压缩后是 167M,压缩后表的大小仅仅是原来表的40%,效果非常明显,并且因为这个表中大部分字段仅仅是id,相对而言反复值还不算多的,假设反复值很多其它,那么压缩效果会更好。
可是,我们看到,索引的大小(index_size)基本上没什么变化。于是我们继续进行索引的压缩:
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。那么读取速度肯定会更快,并且因为占用的空间小了,也能够让很多其它的数根据网页缓存在存储器,进一步提高系统的整体性能。
版权声明:本文博主原创文章。博客,未经同意不得转载。
【SQL Server性能优化】SQL Server 2008该表压缩的更多相关文章
- SQL Server性能优化(8)堆表结构介绍
一.表结构综述 下图是SQL Server中表的组织形式(其中分区1.分区2是为了便于管理,把表进行分区,放到不同的硬盘数据文件里.默认情况下,表只有一个分区.).表在硬盘上的存放形式,有堆和B树两种 ...
- SQL Server 性能优化之——T-SQL 临时表、表变量、UNION
这次看一下临时表,表变量和Union命令方面是否可以被优化呢? 阅读导航 一.临时表和表变量 二.本次的另一个重头戏UNION 命令 一.临时表和表变量 很多数据库开发者使用临时表和表变量将代码分解成 ...
- SQL Server 性能优化实战系列(一)
数据库服务器主要用于存储.查询.检索企业内部的信息,因此需要搭配专用的数据库系统,对服务器的兼容性.可靠性和稳定性等方面都有很高的要求. 下面是进行笼统的技术点说明,为的是让大家有一个整 ...
- SQL Server性能优化(6)查询语句建议
1. 如果对数据不是工业级的访问(允许脏读),在select里添加 with(nolock) ID FROM Measure_heat WITH (nolock) 2. 限制结果集的数据量,如使用TO ...
- SQL Server 性能优化之RML Utilities:快速入门(Quick Start)(1)
SQL Server 性能优化之RML Utilities:快速入门(Quick Start)(1) 安装Quick Start工具 RML(Replay Markup Language)是MS ...
- 【SQL Server性能优化】运用SQL Server的全文检索来提高模糊匹配的效率
原文:[SQL Server性能优化]运用SQL Server的全文检索来提高模糊匹配的效率 今天去面试,这个公司的业务需要模糊查询数据,之前他们通过mongodb来存储数据,但他们说会有丢数据的问题 ...
- SQL Server 性能优化(一)——简介
原文:SQL Server 性能优化(一)--简介 一.性能优化的理由: 听起来有点多余,但是还是详细说一下: 1.节省成本:这里的成本不一定是钱,但是基本上可以变相认为是节省钱.性能上去了,本来要投 ...
- SQL Server 性能优化之——系统化方法提高性能
SQL Server 性能优化之——系统化方法提高性能 阅读导航 1. 概述 2. 规范逻辑数据库设计 3. 使用高效索引设计 4. 使用高效的查询设计 5. 使用技术分析低性能 6. 总结 1. 概 ...
- SQL Server性能优化与管理的艺术 附件下载地址
首先感谢读者们对鄙人的支持,购买了<SQL Server性能优化与管理的艺术>,由于之前出版社的一些疏忽,附件没有上传成功,再次本人深表歉意. 请需要下载附件的读者从下面链接下载,谢谢: ...
- SQL SERVER性能优化综述
SQL SERVER性能优化综述 一个系统的性能的提高,不单单是试运行或者维护阶段的性能调优的任务,也不单单是开发阶段的事情,而是在整个软件生命周期都需要注意,进行有效工作才能达到的.所以我希望按照软 ...
随机推荐
- jeecg 3.5.2 新版本号4种首页风格 【经典风格,shortcut风格,ACE bootstrap风格,云桌面风格】
[1]经典风格: [2]Shortcut风格: [3]ACE bootsrap风格: [4]云桌面风格: [5]自己定义图表 watermark/2/text/aHR0cDovL2Jsb2cuY3Nk ...
- ubuntu终端方向键不能用(主机名不显示)问题的解决
sudo gedit /etc/passwd 在/etc/passwd中改动该用户相应的shell:/bin/sh改为/bin/bash就可以解决该问题
- 每个线程分配一个stack,每个进程分配一个heap;heap没有结构,因此寻址慢(转)
学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈". 理解这个概念,对于理解程序的运行至关重要.容易混淆的是,这个词其实有三种含义,适用于不同的场合,必须加以区分. ...
- sharpSVN说明文档
http://sharpsvn.open.collab.net/docs/walkthrough.htm
- Cocos2d-X研究之v3.x瓦片地图具体解释
在游戏开发过程中,我们会遇到超过屏幕大小的地图,比如即时战略游戏,使得玩家能够在地图中滚动游戏画面.这类游戏一般会有丰富的背景元素,假设直接使用背景图切换的方式,须要为每一个不同的场景准备一张背景图, ...
- Python学习入门基础教程(learning Python)--2.3.1 Python传参函数设计
本节主要讨论设计传递多个参数子函数的设计方法. 在2.3节里我们讨论了如何自己设计一个带参数的子函数的设计方法,现在我们研究一下如何传递两个及以上参数的设计方法. 函数为何要带参数呢?其实原因很简单, ...
- SecureCRT学习之道:SecureCRT 常用技巧
快捷键: 1. ctrl + a : 移动光标到行首 2. ctrl + e :移动光标到行尾 3. ctrl + d :删除光标之后的一个字符 4. ctrl + w : 删除行首到当前光标所在位 ...
- 关于多线程的一个例子(UI实时显示)
在开发Window应用程序的时候,经常需要在界面上显示出已经执行到什么步骤了,拿一个简单例子来说,创建一个Winform程序,在窗体上访一个Button和一个Label,点击Button时做100次循 ...
- WPF如何获得变量异步回调函数时产生的异步回调
有这样的问题,WPF当使用异步回调,需要使用产生的异步变量中的回调函数.数据库中查询诸如异步函数来获得一DataTable.怎样传递给回调函数呢? [方案一]使用全局变量 非常easy想到的是用全局变 ...
- 深入浅出KnockoutJS
深入浅出KnockoutJS 写在前面,本文资料大多来源网上,属于自己的学习笔记整理. 其中主要内容来自learn.knockoutjs.com,源码解析部分资料来自司徒正美博文<knockou ...