SQL Server 2008的新压缩特性

   关于SQL Server压缩的故事,最早是从SQL Server 2005开始的,在企业版和开发版中增加了一种叫做vardecimal的新存储格式,这个表级的选项会影响到decimal和numeric字段。当对值的精度要求低于字段可用精度,如在一个decimal(18,9)类型的字段中存储1.5这个数值时,存储上就需要有相应的压缩。从效果上来看,它就是一个varchar类型的数字型版本。

  SQL Server 2008所包含的已远不止这些小技巧,Chad Boyd写到 :

  无论从哪方面来看,SQL Server 2008的数据压缩都与现在有着巨大的差异(尽管它依然支持或者说包括vardecimal类型)——引起这种差异的真相是,如果你对一个给定的table/index启用压缩功能,那么底层的row/page格式将不再相同——是的,就是这样,你听得没错——如果你使用压缩(ROW或者PAGE),那么SQL 2008的row/page格式将不同于现有的格式(如果你只是在table/index上使用压缩的话)。因此,在SQL 2008中,有两种,没错,是两种可选row/page数据格式。你现在可能会想知道“那么,如果row/page格式改变了,那你们究竟是如何在这么短的时间内,依然有足够的时间去重新生成SQL Server所有需要识别这些格式的组件的呢?”答案就是我们不需要那样做——因为Storage Engine是SQL 2008中唯一一个需要知道新的row/page格式的组件。

  行级压缩将大幅减少元数据所需的变量长度,较以前每个字段需要花费2个字节来存储,现在只要仅仅3个位。字段本身现在也变得更小,在整型字段中存储像1这样的数值,只需要一个字节,而大数值则最多只需要4个字节。

  行级压缩则允许在行间共享共有数据。Chad首先谈到的两种技术就是列前缀和页字典:

  假设你在一页的数据行中有一列数据有这些值:‘Chad’、‘Chadwick’、‘Chadly’、‘Chad’、‘Chadster’、‘Chadwick’和‘Chadly’(故意重复的数值)——正如你所见,有相当多的冗余‘前缀’数据在这一页的同一列的不同行中,是吧?因此,你最终可能会想到这样的一个场景:将列的前缀‘Chad’存储在CI结构中,每一个列的最后都指向这个前缀值,最后出现在磁盘上的值会像这样:‘’,‘1wick’,‘1ly’,‘1ster’,‘1wick’和‘1ly’。

  所以,对于上述例子中的含有Chad的同列数值,在经过对“列前缀”值进行计算和存储后,你可能得到一个会含有如‘1ly’和‘1wick’这些值的页字典,而真正行内数值则极有可能看上去像这样:‘’、‘2’、‘3’、‘’、‘1ster’、‘3’和‘2’。通过这种方式,我们让原本需要大约25个字节来存储的行数据,减少到只要大约17个字节来存储,节省30%以上。

  每一个页都是单独压缩的,前缀和字典也存储在页内。由于页是存储分配的原子单位,将半页压缩到四分之一页是没有任何意义的,所以,只有在页的内容快满的时候才会开始压缩处理。

  在使用行和页压缩时还有一个性能权衡问题,因为CPU使用率会上升,但I/O使用率和内存占用会下降。

  Backup Compression是2008的另一个特性,它是通过普通的文件系统型压缩技术实现的,对于给定的数据库,只有启用或者禁用,没有其它可调节选项。

  尽管非企业版服务器可以恢复带压缩的备份,但这所有的压缩选项极有可能成为企业版专享选项。

时间: 2024-11-03 17:56:50

SQL Server 2008的新压缩特性的相关文章

SQL Server 2008的新特性概述:集成服务

SSIS(SQL Server集成服务)是一个嵌入式应用程序,用于开发和执行ETL(解压缩.转换和加载)包.SSIS代替了SQL 2000的DTS.整合服务功能既包含了实现简单的导入导出包所必需的Wizard导向插件.工具以及任务,也有非常复杂的数据清理功能.SQL Server 2008 SSIS的功能有很大的改进和增强,比如它的执行程序能够更好地并行执行.在SSIS 2005,数据管道不能跨越两个处理器.而SSIS 2008能够在多处理器机器上跨越两个处理器 .而且它在处理大件包上面的性能得

SQL Server 2008中新的日期时间数据类型

SQL Server 2008 终于发布新版了,虽然还只是另一个社区测试版而非完全版.每当新软件发布,大 家最关系的问得最多的问题就是:有些什么新特性?SQL Server 2008有很多新功能和新工具.不过,本文 还是主要为大家介绍SQL Server 2008七月预览版引入的新数据类型,并对DATETIME数据类型的功能进行 专门讨论. SQL Server 2008中DATETIME功能的最大转变就是引入了四种DATETIME数据类型,分别为 DATE.TIME.DATETIMEOFFSE

SQL Server 2008 R2新特性:主数据管理

提供对硬件资源进行深入监控的仪表.报表之类的,可以帮助用户调优SQL Server,提高硬件资源的发挥和保证系统的健康运行. SSMS得到了进一步的增强,以提供更多的功能.策略.报表等来帮助用户管理数据库. 提供了主数据服务(MDS),企业中的主数据可以直接通过SQL Server进行管理了. 在BI上进行了加强,新的"data mash up"功能实现了数据的收集.集成,数据集成工作变得更强大更容易:提供了Excel 2010的插件用于在Excel中进行数据分析:报表的设计和展示也进

SQL Server 2008新特性之数据仓库可扩展性(一)

1.导言 Microsoft SQL Server 2008提供了一个全面的数据仓库平台.它使得你可以使用一套单独的.整合的 产品套件建立和管理你的数据仓库,并使你可以为你的用户提供洞察信息.它可以满足最大规模企业的需 求,给予你的终端用户和IT员工所需的权利. 在SQL Server 2008版本中部署方面首先要关注的是要改进整个产品套件的可扩展性以充分满足大型企 业的需求.这里,我们将介绍我们已经添加的用于改进你的数据仓库体验的特性和改进之处.建立.管理 .传送.SQL Server 200

SQL Server 2008新特性之数据仓库可扩展性(二)

3.10 资源监控器 SQL Server 2008中新的资源监控器使你可以控制分配给你的关系型数据库工 作负载不同部分的CPU和内存资源的数量.它可以用来防止失控查询(它阻止资源分配给其它工作负载)以 及为你的工作负载重要部分预留资源.SQL Server 2005资源策略平等地对待所有的工作负载,并按需分 配共享资源(例如,CPU带宽.内存).这有时会引起资源分配不按比例,从而导致性能不均衡或意料外的 速度降低. 资源监控器的首要目标如下所示: a. 监控:使得可以监控每组请求的资源消 耗(

Sql Server 2008 为开发带来的新特性

许多数据库开发人员负责创建的查询需要用来返回其应用程序所需的数据.您可能熟悉 LINQ(语言集成查询)工具,它允许数据库开发人员使用基于 Microsoft .NET 的编程语言而非普通的 T-SQL 语句向数据库发出查询请求.SQL Server 2008 向 SQL 提供程序提供了新的 LINQ 命令,可以允许开发人员直接对 SQL Server 表和列发出 LINQ 命令,从而增强了 LINQ 的功能.这将缩短创建新数据查询所需的时间. 对数据库进行开发时,开发人员会使用较高级别对象,将其

探究SQL Server 2008备份压缩

问题 大型数据库的数据库备份和维护窗口总是受阻,特别是当我们需要完全数据库备份来初始化一个数据 库镜像或事务日志传送会话的时候.当我们浏览SQL Server 2008的新特性时,我们发现由一个叫做数据 库备份压缩的特性,可以用它来显著地降低备份和恢复操作.你能给我们详细地介绍下如何使用它吗? 专家解答 数据库压缩是SQL Server 2008的一个新特性,它可以显著地降低备份和恢复操作.默认情况下,备份 压缩是在服务器实例级别上关闭的.不像其它提供不同级别压缩的第三方软件,SQL Serve

SQL Server 2008中的数据表压缩功能详细介绍_mssql2008

SQL Server 2005 SP2为我们带来了vardecimal功能,当时针对decimail和numeric数据类型推出了新的存储格式--vardecimal.vardecimal存储格式允许 decimal和numeric数据类型的存储作为一个可变长度列. 这项功能使得原来定长的decimal数据在数据文件中以可变长的格式存储,据称这项功能可以为典型的数据仓库节省30%的空间,而SQL Server 2008在这一基础上又进一步增强了数据压缩功能.SQL Server 2008现在支持

SQL Server 2008特性及集成服务详解

SQL Server 2008系统诞生于08年3月13日,在微软2008新一代http://www.aliyun.com/zixun/aggregation/13760.html">企业应用平台与开发技术发布大会上,微软宣布向企业用户大众同时发布三款核心应用平台产品:Windows Server 2008.Visual Studio 2008.SQL Server 2008,此次微软发布的三大产品对企业实现"动态IT"愿景.随着Windows Server 2008.V