SQLServer2008行数据和页数据压缩解密

本文将为大家介绍SQL Server 2008行数据和页数据的一些处理方法,希望能对DBA的管理工作有所帮助。

成都创新互联是一家专业提供湛河企业网站建设,专注与成都做网站、网站设计、HTML5建站、小程序制作等业务。10年已为湛河众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

SQL Server的性能主要取决于磁盘I/O效率,提高I/O效率某种程序上就意味着提高性能。SQL Server 2008提供了数据压缩功能来提高磁盘I/O。

数据压缩意味着减小数据的有磁盘占用量,所以数据压缩可以用在表,聚集索引,非聚集索引,视图索引或是分区表,分区索引上。

数据压缩可以在两个级别上实现:行级别和页级别。页级别压缩包括行级别压缩。表和索引在创建的同时就可以压缩,也可以使用Alter Table Rebuild With 或是 Alter Index Rebuild With语法压缩已存在表或是索引。当堆(Heap)上的压缩状态改变时,所有的非聚集索引也会重建。

下面让我们看看压缩过程到底都做了些什么。

行压缩:

1.减少元数据头记录数据。

2.所有的数值类型(integer,decimal,float)或基于数值类型的类型都会被压缩(datetime,money)。比如,100被存在一个int型字段中,占4位,但是从0~255只需要1位,压缩后,就节省了3byte空间。

3.Char和NChar都被存放于可变长度的类型中。原因同上。比如,CSDN被存在Char(10)中,但是它只需要Char(4)空间,所以压缩后就释放了Char(6)个空间。

4.所有类型的NULL和0都不占字节了。

页压缩:

1.进行行压缩。

2.前标压缩:每一页中的所有列,在行标头下面,每行都存储着一个行定义值,压缩后,所有行的定义值都被替换成行头值的引用。

3.字典压缩:字典压缩和前标压缩类似。前标压缩中,一个与其他普通值不同的值被定义到每一列上。但是字典压缩中,每一页中所有列的普通值被存在下一行的行头前面。然后,这些值被替换成新行的引用值。

下面我们来看一个例子:

 
 
 
 
  1. USE tempdb 
  2. GO 
  3. CREATE TABLE TestCompression (col1 INT, col2 CHAR(50)) 
  4. GO 
  5. INSERT INTO TestCompression VALUES (10, 'compression testing') 
  6. GO 5000 
  7. -- Original 
  8. EXEC sp_spaceused TestCompression 
  9. GO 
  10. -- DATA_COMPRESSION = ROW 
  11. ALTER TABLE TestCompression 
  12. REBUILD WITH (DATA_COMPRESSION = ROW); 
  13. GO 
  14. EXEC sp_spaceused TestCompression 
  15. GO 
  16. -- DATA_COMPRESSION = PAGE 
  17. ALTER TABLE TestCompression 
  18. REBUILD WITH (DATA_COMPRESSION = PAGE); 
  19. GO 
  20. EXEC sp_spaceused TestCompression 
  21. GO 
  22. -- DATA_COMPRESSION = NONE 
  23. ALTER TABLE TestCompression 
  24. REBUILD WITH (DATA_COMPRESSION = NONE); 
  25. GO 
  26. EXEC sp_spaceused TestCompression 
  27. GO

链接: http://www.cnblogs.com/Robin2005/archive/2010/03/05/1678803.html

文章标题:SQLServer2008行数据和页数据压缩解密
网页链接:http://www.shufengxianlan.com/qtweb/news11/498161.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联