探密微软SQL Server 2008中新压缩特性
作者 佚名技术
来源 数据库编程
浏览
发布时间 2012-03-21
导语:SQLServer2005SP2为我们带来了vardecimal功能,这项功能使得原来定长的decimal数据在数据文件中以可变长的格式存储,据称这项功能可为数据仓库节省空间,而SQLServer2008在这基础上增强了数据压缩功能。 SQLServer中的数据压缩功能,最早是从SQLServer2005开始,在企业版和开发版中增加了一种叫做vardecimal的新存储格式,这通过该功能应用可以影响到decimal和numeric字段。如果数据库里的表含有decimal和numeric类型数据,用户就可以使用vardecimal存储格式来缩小数据库的大小。值得注意的是,能够节省出多少空间取决于数据库中含有多少decimal或numeric数据列、数据分布情况以及表的大小。 使用数据压缩 而正是这个数据压缩功能,成为SQLServer2008中又一新特性:数据压缩,利用该特性,可以减小数据表,索引以及分区的子集的大小。但是这个之前在SQLServer2005存在的功能,为何要在新一代版本系统中改进,存储成本不断降低的市场环境下,数据压缩技术能给企业何种好处? 尽管存储成本已经不再是企业关注的敏感因素,但是这并不代表数据库尺寸不会对企业运营中效率有影响,因为数据库尺寸除了会影响到存储成本之外,还极大地关联到管理成本和性能问题。 首先,因为数据库需要备份,数据库的尺寸越大,那么备份时间就会越长,同时消耗的备份硬件成本提升,还有一种管理成本就是数据库的维护成本。从性能方面,SQLServer在扫描磁盘读取数据的时候都是按照数据页为单位进行读取的,因此如果一张数据页中包含的数据行数越多,SQLServer在一次数据页IO中获得的数据就会越多,这样也就带来了性能的提升。 相对于SQL Server2005SP2中vardecimal的压缩数据,SQLServer2008当前放出的测试数据,采用新的数据压缩技术可以达到更高的存储率,再加上企业对于容灾而增加的存储空间,所有的这些都是SQLServer2008中这一新特性有利一面。 第2页:两种压缩模式 了解压缩数据真正好处之后,可以感受到概念的渗透,借助数据压缩,减少了存储成本,并提高查询性能,减少I/O和增加缓冲点击率。可见,这一个功能在应用过程中还是十分有效果的,SQLServer2008中的数据压缩有两种应用方式,即行压缩和页压缩,下面对这两种数据压缩类型简单做个对比。 数据压缩向导过程中选择压缩类型 行压缩。行压缩可以将固定长度类型存储为可变长度存储类型。例如char(100)列储存在一个可变长度存储格式将只使用了存储量所定义的数据。储存的“SQLServer2008”,压缩后只需要存放15个字符,而非全部100个字符,从而节省了85%的存储空间。这是在SQLServer2005ServicePack2中提供的vardecimal存储格式的思路的延伸。同时需要注意的是,这种压缩模式,将对所有数据类型的NULL和0值进行优化,从而使它们不占用任何字节。 尽管SQLServer2008数据压缩扩展了这个功能,对所有固定长度的数据类型都进行了处理,包括integer、char和float。现在数据不是以固定大小的字节进行存储,而是用最小所需的字节,只需要启用行压缩功能就可以执行。但是,行压缩无法处理xml、BLOB和MAX数据类型。 页面压缩模式。这种压缩功能,建立在行压缩基础之上,通过只存储一次页面上相同事件字节来将存储的冗余数据减到最小。使用页压缩压缩表和索引,除了采用行压缩,还采用了前缀压缩和字典压缩。 数据压缩会减少的大小您的表格或索引指标,最好是先评估一下压缩后所能节省的空间。每一个页都是单独压缩的,前缀和字典也存储在页内。由于页是存储分配的原子单位,将半页压缩到四分之一页是没有任何意义的,所以,只有在页的内容快满的时候才会开始压缩处理。 在使用行和页压缩时还有一个性能权衡问题, |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于探密微软SQL Server 2008中新压缩特性的所有评论