当前位置:首页 > 系统运维 > 正文内容

SQL Server 2008数据压缩的正确执行

a8116255316年前 (2010-07-14)系统运维15

下面的文章主要介绍的是正确执行SQL Server 2008数据压缩的实际操作流程,在实际操作中我们对SQL Server 2008数据库的新功能进行观察时,我们发现一个叫做数据压缩的可能很有趣的功能,我们可以用这个功能来缩小表,索引或者它们分区的一个子集。

您能给我们提供如何利用这个新功能的详细解释吗

专家解答

在SQSQL Server 2008数据压缩在SQL Server 2005 的Service Pack 2中已经可以使用了,在Service Pack 2中,引进了存储小数和数字数据。Vardecimal存储格式允许小数和数字数据类型以变长的形式存储。这个概念在SQL Server 2008中被扩展成全部定长的数据类型,比如integer,char和float 数据类型。数据压缩通过减少I/O和提高缓冲区命中率来降低储存成本和提高查询性能。

SQL Server 2008在表级别和索引级别上支持行和页的压缩。以下是两种类型的SQL Server 2008数据压缩的不同之处。

行压缩(ROW Compression) 这种压缩功能考虑到变长数据类型结构来定义一栏。比如,以变长存储的一个CHAR(100)栏只能使用由数据定义的存储空间大小。在栏中存储“SQL Server 2008”只要求存储15个字符而不是完整的100个字符,因此,在存储空间上节省率为85%。

这是在SQL Server 2005 Service Pack 2中可以使用的 vardecimal存储格式的扩展。还要注意到,这个压缩功能没有因为零或者空值而占用磁盘空间。

页级别压缩(PAGE Compression) 这种压缩功能是行压缩的父集,它考虑到给定的页内的一行或多行冗余数据。它也使用前缀和字典压缩。这仅仅意味着对于两种页压缩技术,存储引擎在页内减少重复数据。

比如,假如利用一列前缀把一张表分区,在一个具体分区中的所有数据都会有一样或者相似的前缀。让我们以一些像A1000Q-xxxx的产品代码为开始说一些栏的值,存储引擎存储A1000Q – 一开始在页上接着在相同的页面上从这个值的其他所有的发生的事指到这个值。这也可以说成有已经定义好的默认约束的一栏。页压缩只发生在页已经完全优化性能的时候。

虽然表面看来数据压缩会缩小你的表和索引,但是更好首先通过

sp_estimate_data_compression_savings系统存储程序或数据压缩Wizard工具在表或索引中评估预计的节省空间。你也可能检查现有数据是否成为碎片,因为你可能可以通过重建它而不是使用压缩来缩小索引。

评估存储节省空间

我们可以使用sp_estimate_data_compression_savings系统存储程序或者SQL Server 2008数据压缩Wizard工具去为索引中的一张表找出预计的存储节省空间。为了使用AdventureWorks数据库中的

sp_estimate_data_compression_savings系统存储程序,

USE AdventureWorks   go   EXEC sp_estimate_data_compression_savings 'Sales', 'SalesOrderDetAIl', NULL, NULL, 'ROW' ;   GO 

在这里,

l 之一个参数是模式名,

l 第二个参数是对象名,

l 第三个参数是索引id,

l 第四参数是分区id,

l 最后一个参数是压缩类型。

在以上的例子中,我会考虑在AdventureWorks数据库中的Sales.SalesOrderDetail表上的行压缩。执行这个查询会给你如下显示的结果: 

请注意栏size_with_current_compression_setting(KB)和

size_with_requested_compression_setting (KB),假设没有碎片,这两个栏会让你对在Sales.SalesOrderDetail表中实现节省空间有个估计。

要使用数据压缩Wizard工具,右键单击Sales.SalesOrderDetail表,选择存储并且单击管理压缩。 

这将在Welcome to Data Compression Wizard上启动SQL Server 2008数据压缩Wizard工具,点击下一步。

在选择压缩类型页面上,在压缩类型栏里点击下拉菜单,选择你的压缩类型选项。我将选择行,因为这是通过sp_estimate_data_compression_savings系统存储程序使用的选项。点击计算按扭来显示由存储程序提供的相似信息。

这两种 *** 将会让你获得通过压缩你的表和索引来获得存储节省空间的一个估计。

使压缩在表上可用

为了使压缩在现有的非分区表上可用,可以使用有REBUILD选项的ALTER TABLE命令。

ALTER TABLE Sales.SalesOrderDetail  REBUILD WITH (DATA_COMPRESSION = ROW);  

上面的语句使行压缩在Sales.SalesOrderDetail表上可用。你也可以继续用数据压缩Wizard去使压缩在表上可用。在点击选择压缩类型页面上的计算按扭之后,点击下一步。在选择一个输出选项的页面上,你可以选择要么创建一个用于评论的脚本要么保存到一个文件中,立即运行或把它当作一个工作。

作为一个数据库管理员,你可能会把这个当作你的数据库日常维护的一部分,所以你可能也会为评论它而创建一个脚本,然后包括一个数据库维护工作。点击下一步按扭来继续。

在点击完成之前,审查SQL Server 2008数据压缩摘要页面。

你可能想要创建一个脚本,这个脚本通过使用sp_estimate_data_compression_savings系统存储程序来遍历所有的表,以此来产生摘要报告,而系统存储程序将会帮助你分析你会压缩哪些表或者索引。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/21962.html

分享给朋友:

“SQL Server 2008数据压缩的正确执行” 的相关文章

windows 7系统开机提示press any key to restart的故障分析及解

windows 7系统开机提示press any key to restart的故障分析及解

Windows 7 64位系统开机后提示"press any key to restart",无法进入系统了,具体现象如下所示: 故障分析: 故障的主要原因还是硬盘的问题,可以先检查是不是接触不良或坏了,进行修复或更换即可。 解决方法: 1、开机按F8不动到高级选项出现在松手,选“...

微软今天正式停止对windows 7的主流支持

微软今天正式停止对windows 7的主流支持

北京时间1月13日消息,根据计划,微软将于2015年1月13日正式结束对Windows 7SP1的“主流支持”,而这也标志着“扩展支持”阶段的开始,这个阶段将于2020年1月14日结束。 2013年10月份,微软终止销售独立的Windows 7系统安装包,并要求制造商于2014年10月份停止生...

Win 7系统中其他声音正常但酷狗音乐没声音怎么回事

Win 7系统中其他声音正常但酷狗音乐没声音怎么回事

故障现象: Windows 7酷狗软件无声音,系统声音正常。 原因分析: 1. 查看酷狗软件设置 2. 查看系统设置 解决方案: 1. Windows 7操作方法 如图:查看是否处于禁音状态   Windows 7系统声音正常酷狗音乐无声音 2. 查看设置音频输出是否...

Windows7截图出现黑屏导致截的图黑呼呼一片

Windows7截图出现黑屏导致截的图黑呼呼一片

最近一些Windows 7用户反馈说,自己在截屏的时候出现黑屏,导致自己截的图黑呼呼一片。这个问题该怎么解决?今天小编就为大家提供一个解决的方法。 步骤 1 在windows xp时代,很多用户都曾被视频截图后的“全黑图片”困扰。对此,在解决本地播放时出现的截图变黑问题,一般有两个方法可以用来解...

windows 7如何给c盘扩容 图解windows 7 64位系统C盘扩容方法(自

windows 7如何给c盘扩容 图解windows 7 64位系统C盘扩容方法(自

用Windows 7久了,C盘越来越大,原来50G的空间基本用完了,又不想重装系统,就想着能不能直接扩容。 在网上搜了半天,看了无数教程,都写得不明不白的,结合了几篇教程才终于搞明白。 重新总结一下,方便有需要的人。 所用软件: http://www.jb51.net/softs/57895...

windows 7系统下Windows服务被流氓软件注册怎么办?Windows服务

windows 7系统下Windows服务被流氓软件注册怎么办?Windows服务

解决方法: 其实处理这些使用流氓软件,需要将相关的.exe文件删除,使它不能再运行,或者直接清除这个服务本身,使计算机重启的时候,它不会再启动。比如Hijackthis扫描,在扫描日志中,一般会把非Windows系统的服务以023的方式列出来,如下面这段: O23 - ...