SQL SERVER系列(二):数据压缩技术引领数据库新潮流

     在数据库应用中,系统性能的瓶颈主要是在磁盘IO上,相比于CPU速度的不断提高(摩尔定律)和多核CPU的普及,以及数据的迅速增长,磁盘IO的性能提高却很慢,这也导致磁盘IO的瓶颈现象愈发严重,使得提高数据库性能的努力遇到了很大障碍。于是各大数据库厂商都是绞尽脑汁,想尽各种办法来提高数据库的性能,一种以时间来换空间的优化技术——数据压缩技术正慢慢变得越来越流行。数据压缩技术对于数据库而言,既能加快读取的速度,又降低了磁盘的存储消耗空间,可谓一举两得,但同时也不能忽视数据压缩/解压缩带来的额外CPU和时间的消耗。
     事实上,在数据库中采用压缩技术并不是什么新想法,早在上世纪八十年代,就有很多学者做过这方面的研究(参见后附的相关论文)。由于当时的软件和硬件的条件所限,这些早期的尝试并没有取得显著的成功。但随着人类迈入二十一世纪,计算机在软硬件方面都有了长足的进步,尤其是多核CPU的普及,使得数据压缩技术进入数据库的障碍不在存在。
    Oracle从9i开始就引入了表级的压缩技术( Table Compression in Oracle9i Release2),但存在很多限制,只能对批量装载操作涉及的数据进行压缩,普通的DML操作的 数据是无法压缩的。这应该是对于写操作的压缩难题没有解决,一直遗留到Oracle11g,总算是解决了关系数据压缩的写性能问题( Data Compression in Oracle)。Oracle11g推出了一个叫做Advance Compression的组件,全面支持普通表压缩和非结构化数据压缩。根据Oracle的宣传,“ 相比在无压缩格式下存储 数据,新的Oracle数据压缩技术能够确保以较小的开销节省三倍以上的磁盘存储空间。”
    在三大数据库SQL Server、Oracle和 DB2中,DB2的一个劣势就特别耗存储空间,需要更多的磁盘空间,因此DB2当然不会对数据压缩技术视而不见。事实上,IBM并非第一次在DB2中使用数据压缩技术,但之前的尝试似乎并不成功,直到DB2 Viper(DB2 9)中内嵌代号为“Venom”的数据压缩技术,DB2中的数据压缩技术才真正成熟。 GY'uo(gj Venom压缩技术实际上承袭自IBM的大型计算机数据库,通过应用行压缩(row compression)技术和基于字典的压缩算法来压缩数据对象。IBM宣称,基于数据行的压缩技术将“让Oracle基于表的压缩功能相形见绌”,它能够把大型数据库需要的存储空间减少一半,在某些情况下压缩比甚至可以高达72%。
    相比于Oracle和DB2中很早就开始尝试使用数据压缩技术,SQL Server就显得有点“麻木不仁”了,一直没有什么动作。直到Oracle 11g和DB2 Viper的相继推出,并且将数据压缩技术作为主要的亮点进行大肆宣传,微软终于也坐不住了。微软最早的尝试是在SQL Server 2005 SP2中推出的基于vardecimal格式的存储改进( Reducing Database Size by Using Vardecimal Storage Format),但这仅仅是针对于Decimal和Numeric数据类型的存储优化,还算不得一般意义上数据压缩。从目前微软透露出的信息来看,即将于明年一季度推出的SQL Server 2008(代号Katmai)才可能是微软第一次真正在数据库中引入数据压缩技术(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值