SQL Server 2008最后CTP:聚焦数据压缩技术
2008-04-14 09:54:20 来源:WEB开发网在微软SQL Server 2008盛大发布会后足足六个月,该新版本才将于下个礼拜正式发行。而对SQL Server 2008感兴趣的潜在用户现在有机会试用其新功能和特性。
2月19日下午,微软推出了最后一次SQL Server 2008社区测试试用版,向普通商业用户提供了对市场分析师誉为微软发展最快的产品线上最新产品一个先睹为快的机会。
但是这个新的RDBMS结构有一个主要特性,除非商业用户已经决定了要跟SQL Server 2005说再见并投入新版本的怀抱,否则他们都会希望能够在一个安全的环境下对其进行试用,比如虚拟服务器。那就是微软的数据压缩技术,虽然这项技术在SS 2005 SP2里已经推出,但是在SS 2008中,该项技术得到进一步发展,可以应用到几乎所有类型的数据。
一般而言,当我们讨论“数据压缩”的时候,脑海里马上就会联想到ZIP Files或Lempel-Ziv algorithm,但是我们现在要说的微软数据压缩技术则是完全不同的。对于能够存储在内存或硬盘里的活跃数据库而言,进行数据压缩并不是件容易的事情。静态数据库基础上,可以在页面水平上进行数据压缩,但是考虑到在压缩字典上的过分花销和维护所需的精力和时间,进行数据压缩往往得不偿失。
事实上,首先把数据压缩提上开发日程的是IBM,IBM早在1998年就开始在DB2里尝试了数据压缩新方案,并在2002年发行的DB2 8里正式推出。它提出了行压缩的概念,这种压缩形式并不需要太多的excess代码编写。它的主要原理是,当你新建一个SQL表或者建立存储过程来改变现有表的时候,你以 COMPRESS YES 声明新的表方案需要进行压缩。
IBM当时的这项技术是把表里的某些列——一般是长度不一的列——以隐藏的索引表代替,这样的隐藏索引表被称为压缩字典。然后利用数据压缩技术对该表进行区别处理,如果把压缩技术应用到整个数据表的话就会引起严重后果。
DB2早先的版本都有类似的数据压缩方法,但是数据库管理员报告其压缩效果适得其反,因为数据字典的大小过分膨胀,甚至比完全没有进行压缩的数据表还要大。
正是DB2中数据压缩技术的使用激发了微软开发完全不一样的、适用于其系统的数据压缩方法。SS 2005推出了文件压缩技术,尽管这项技术只能用于只读数据库。但是从SQL Server 2005 SP2开始,微软发展出一种新的压缩理念,开发出一种新的可变类型数据,称为 vardecimal数据。
微软工程师Sunil Agarwal和 Hermann Daeubler在2007年写道:“这种存储格式可以在表水平上启用,在表中启用后,SQL Server会把decimal和numeric类型数据存储到行的可变部分里,而不是存储在固定部分。如果你的数据库里的表含有decimal和numeric类型数据,你就可以使用 vardecimal存储格式来缩小数据库的大小。而能够节省出多少空间取决于你的数据库中含有多少 decimal或numeric数据列、数据分布情况以及表的大小。“
假设你的表里有一列为地址数据信息,在现有的varchar格式下,每一条地址信息后面紧接着的空间将会被截掉,而不是以0的形式存储,这样就不会占用过多的空间。而运用vardecimal格式,以上的原理则应用到了赋值的列。尽管在一列的任何一条输入最高的值需要4个字符代表,但是不是每条输入都需要4个字符,尤其是那些只含有像0或15这样的整数的输入。
Vardecimal格式在SS 2005 SP2中还只是一个初步的概念,针对用户时还是一个“试试你就会喜欢上它”的新尝试,但到了SS 2008版本,它已经是所有类型值的标准格式了,从基本上改变了数据库的构造。
但是它并没有改变数据库程序的语义,因此运行时跟应用固定存储一样。正如Agarwal在去年11月份写的:“很重要的一点是,尽管SQL Server以不同长度格式对此类数据进行存储,数据类型的语义不会改变(换句话说,从应用的角度来看,依然是固定长度 的数据类型)。这意味着你可以随便利用数据压缩技术的优点而无需对应用程序做任何改动。”
- ››SQL Server 2008 R2 下如何清理数据库日志文件
- ››sqlite 存取中文的解决方法
- ››SQL2005、2008、2000 清空删除日志
- ››SQL Server 2005和SQL Server 2000数据的相互导入...
- ››sql server 2008 在安装了活动目录以后无法启动服...
- ››sqlserver 每30分自动生成一次
- ››sqlite 数据库 对 BOOL型 数据的插入处理正确用法...
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
更多精彩
赞助商链接