用户名: 密  码:
英达社区 / 加入收藏 / 联系我们
网站首页 | 学校简介 | 就业中心 | 产品开发与销售 | 单片机开发 | 嵌入式ARM开发 | PLC开发 | 软件测试 | 自动化软件测试 | 嵌入式软件测试 | 联系我们
学校简介
教学特色
师资力量
就业指导
就业先锋
应用软件测试
手机软件测试
企业培训
产品开发
网站制作
   高新:029-88259409,88278304   郭杜:029-68581658
您所在的位置:首页 >> 软件测试技术 >> 正文
SQL Server 2008 数据压缩功能解析
http://www.yd-itedu.com/  添加日期:10-04-21 11:34:06  来源:    进入论坛
1、“数据压缩”有什么用?

  简单地说,这以功能使得SOL Server 2008允许在表、索引和分区中执行数据压缩,这样不仅可以节省磁盘空间,而且允许更多数据装入RAM中,提升查询的性能。通过笔者测试发现,在数据仓库的场景中,新的压缩技术可以把表的大小减少到原容量的15%一5O%。可见,这一个功能在实战中还是非常有用的。SQL Server 2008中的数据压缩有两种应用方式,即行压缩和页压缩,下面分别进行解读。

  2、行压缩的优与劣

  Vardecimal存储格式是在SQL Server 2005 SP2时加入的,它是SOL Server 2008行压缩概念的鼻祖。在SQL Server 2005 SP2之前,decimal类型总是以固定数据存储的。根据值的精确度,每个decimal值都需要5到17字节的空间。Vardecimal把decimal值以一个可变长度的格式进行存储。这种格式把小数值前后的零都去除,可以减少存储所需的空间。

  SOL Server 2008数据压缩扩展了这个功能,对所有固定长度的数据类型都进行了处理,包括integer、char和float。现在数据不是以固定大小的字节进行存储,而是用最小所需的字节,你也不需要去修改数据类型。只需要启用行压缩功能,剩下的工作就交给SOL Server 2008企业版去处理吧。

  但是,行压缩无法处理XML、BLOB和MAX数据类型。对于开发人员来说,行压缩和页压缩是透明的,如果要使用这个功能,你不需要修改现有的程序。

  3、关于页压缩

  页压缩既使用了列前缀压缩,又使用了字典压缩。列前缀压缩应用到长度可变的列上,它将一个前缀票据和一个后缀值存储在表的行中。前缀票据的值存储在页头中。前缀票

  据仅仅是为页面中的通用前缀值而生成的。字典压缩也把票据值存储在页头中,针对那些固定长度的列,它还在表的行中为页面的常用值存储了一个票据。

  4、如何启用压缩?

  (1).启用行压缩

  如果我们要在指定的表上启用行压缩,可执行以下语句:

CREATE TABLE Alpha(col1 int,col2 char(1000))
WITH (DATA_COMPRESSION = ROW)

  (2).启用页压缩

  如果我们要在指定的分区上启用压缩,可执行以下语句:

CREATE TABLE Alpha_Partition(col1 int,col2 char(1000))
ON PartitionScheme(col 1)
WITH
(DATA_COMPRESSION = PAGE ON)
PARTITIONS(1-3)

  (3).修改压缩

  如果要把一个现有的索引修改为使用压缩,可执行以下语句:

ALTER INDEX Collndx ON Alpha REBUILD
WITH (DATA_C0MPRESSION=PAGE)
ALTER INDEX Collndx ON Alpha REBUILD
partition = 2
WITH (DATA_COMPRESSION=PAGE)

  5、关于节省空间

  执行“数据压缩”能够节省空间,如何查看以及节省空间的大小与什么有关呢?使用SQL Server 2008新的存储过程“sp_estimate_data_compression_savings”可以评估应用数据压缩之后可节省多少空间。而节省空间的大小取决于存储的数据类型。此外,执行“数据压缩” 能够在很大程度上提升查询性能,这是因为经过压缩能够使得更多数据装入RAM中,这样对于提升查询的性能是非常有益的。

上一篇:
下一篇:
 
 最新动态
企业培训
 技术文章
推荐论坛
英达概况 | 在线报名 | 在线咨询 | 联系我们
电话:029-88259409 88278304 传真:88259409 E_mail:tukx@21cn.com
高新校区:西安市太白南路263号新一代国际公寓C座1508室(太白南路与科技路什字东南角)
郭杜校区:西安市西沣路(长安产业园) 田园公寓5号楼1502室(五龙大厦车管所对面)