DB2 10:DB2 10 for Linux, UNIX, and Windows 中的新功能

更高的性能和可靠性、更低的操作成本以及更轻松的应用程序开发

本文介绍 IBM® DB2® 10 for Linux®, UNIX®, and Windows® 中的重要功能和增强。这个最新版即将在 6 月发布,它提供的新功能可直接解决成本削减、应用程序性能、生产力和可靠性方面的业务需求。

Roman Melnyk, DB2 信息开发, IBM

Roman Melnyk 的照片Roman B. Melnyk 哲学博士是 DB2 信息开发团队的高级成员。Roman 与别人合著了 DB2 Version 8: The Official Guide(Prentice Hall Professional Technical Reference,2003 年)、DB2: The Complete Reference(Osborne/McGraw-Hill,2001 年)、DB2 Fundamentals Certification for Dummies(Hungry Minds,2001 年)和 DB2 for Dummies(IDG Books,2000 年)。



2012 年 5 月 08 日

免费下载:IBM® DB2® Express-C 10.1 免费版 或者 DB2® 10.1 for Linux®, UNIX®, and Windows® 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

概述

每个新的 DB2 版本均基于 “DB2 的各个重要方面” 而构建,包括低操作成本、易开发性和可靠性,DB2 10 for Linux, UNIX, and Windows 也不例外。在这个最新版本中,您只需不到一小时即可创建时间感知的表和查询,通过更少的重复来保护数据隐私,基于数据的新颖性为其指定最优的存储分配,动态且增量式地压缩数据,降低创建和维护时间点查询的成本和风险。

DB2 10 for Linux, UNIX, and Windows 将帮助您节省时间和金钱,实现高性能,捕获业务洞察,简化数据安全性,以及提高团队生产力,助力实现新一代应用程序和操作分析。

表 1 总结了 DB2 10 中的主要功能和增强,它们按版本目标和各个 DB2 重要方面进行分类。

表 1. DB2 10 中的主要功能和增强。
DB2 10 功能和增强
DB2 重要方面
DB2 10 目标低操作成本易开发性可靠性其他增强
节省时间和金钱自适应压缩SQL 兼容性增强
多温度数据管理
实现顶级性能性能改进DB2 pureScale 增强连续数据摄入 (ingest)
提高团队生产力时间旅行查询
其他增强数据安全性增强

自适应压缩

自适应压缩是对 DB2 压缩技术的一项显著增强。自适应压缩是一种先进的行压缩技术,它使用两种压缩字典类型(表级别和新页面级别字典)来改进压缩率,尤其是在数据更改时。当然,更高的压缩率会转化为 I/O 受限的系统和数据库备份操作的性能改进,以及更高的存储节省,但使用自适应压缩的一个额外的好处是,您无需执行显式表重组即可保持这些高压缩率。页面级压缩字典是自动创建的,如果一个页面的内容发生重大变化,页面级压缩字典会自动重新创建。当一个页面装满时,会应用页面级压缩,这样会迅速释放该页面上的更多存储空间。

自适应压缩是这些启用行压缩的新表的默认行为。您可以为现有的表启用自适应压缩,只需使用 ALTER TABLE 语句以及 COMPRESS YES 子句或新的 COMPRESS YES ADAPTIVE 子句。为一个现有表启用了自适应压缩之后,所有后续更新或新添加的数据都会进行压缩。要向表中已存在的数据应用自适应压缩,只需执行一次表重组。

自适应压缩可在 Enterprise Server Edition 的存储优化功能 (SOF) 中找到,SOF 包含在 Advanced Enterprise Server Edition 中。


多温度数据管理

多温度数据管理的构建基础概念称为存储组。存储组会映射到数据仓库中的存储类,您可以基于存储组所包含的数据 “温度” 来向它们分配表空间。此功能的主要优势是,您可以将 “热数据” 放在最快的存储设备上,将冷数据放在最慢的存储设备上,通过这种物理方式将最新且更频繁访问的(热的)数据与更老且更少访问的(暖或冷的)数据分开。

通过这种方式隔离数据,可以减少对更快且更昂贵存储的需求,这主要是因为热数据可能仅代表典型数据仓库中数据总量的一小部分。当热数据冷却并更少被访问时,可以轻松地将它转移到更慢的存储,只需将它转移到另一个存储组即可。数据转移是在线的,在后台进行并可暂停(并在以后恢复),以便无延迟地处理更高优先级的工作负载。

此功能全面集成了 DB2 工作负载管理,支持基于查询所访问的数据确定查询的优先级。可以向一个存储组或表空间分配一个数据标记属性(一个从 0 到 9 的值),该数据标记可后续用来确定如何处理特定工作负载。甚至您可以基于活动缩放的数据来确定活动的优先级,无论是预测性(在操作系统开始之前)还是反应性(在活动执行过程中)的。

预测性优先化使用一个列表,其中包含针对编译器相信将在一个活动执行期间访问的所有表空间的数据标记。可以定义工作类集来识别在估计的数据标记列表中拥有特定数据标记的活动。然后可以定义一个工作操作,在与一个工作类集匹配的任何活动执行之前将它们映射到一个特定的服务类。

反应性优先化(使用一个新 DATATAGINSC 阈值)在运行时基于与所访问数据关联的数据标记,将一个活动映射到一个特定的服务类。如果编译器无法提前准确确定将访问哪些表空间,请使用反应性优先化。

多温度数据管理可在 Enterprise Server Edition 和 Advanced Enterprise Server Edition 中找到。


性能改进

DB2 10 提供了众多增强功能,它们的直接效果就是更快的开箱即用查询性能,减少数据库管理员 (DBA) 的工作,以及在正常的系统和数据库更改之间实现更加一致且可重复的查询性能。

以下增强主要关注改进某些仓库查询类。

  • 包含哈希联接 (hash join) 的查询。在许多情况下,对包含联接的查询而言,哈希联接是最有效的联接策略,在 DB2 10 中,哈希联接可用于更多情形。查询优化器在联接谓词包含表达式时会自动考虑哈希联接,甚至在联接中的两列不是相同数据类型时也是如此。
  • 对星形模式的查询。星形模式性能改进包括改进的星形模式检测算法和新的联接方法。改进的算法使查询优化器能够检测基于星形模式设计的查询,使用合适的策略来改善这些查询的性能。也可以使用新的之字形联接方法来加快对基于星形模式设计查询的处理。

以下增强主要集中于改进统计视图,查询优化器使用统计视图来生成更好的访问计划。

  • 包含复杂表达式的谓词。查询优化器现在可使用来自统计视图中的表达式列(包含一个或多个函数的列)的统计信息来生成更好的访问计划。
  • 如果定义了参照完整性约束,现在星形联接查询要获得更好的统计数据,所需的统计视图更少。
  • 统计视图上的列组统计信息。将列组统计信息与统计视图相结合,可在某些情形下改进访问计划。
  • DB2 自动统计集合函数现在可自动为统计视图收集统计数据。

您可以设置某些注册表变量,在全局级别或语句级别对优化配置文件中的 SQL 编译器施加影响。优化配置文件还支持不准确匹配,这种匹配会在匹配语句时忽略文字、宿主变量 (host variable) 和参数标记。

您可以在 RUNSTATS 命令上指定新的 INDEXSAMPLE 选项,以使用一种采样方法有效地收集索引统计信息,而不用扫描整个索引。收集详细索引统计信息的默认方法也已更改为使用采样。当然,您仍然可以选择扫描整个索引来收集详细索引统计信息,就像在以前的版本中一样(只需指定 UNSAMPLED 子句即可)。


SQL 兼容性增强

如果您更熟悉其他关系数据库产品,DB2 10 包含的一些增强能够轻松实现与 DB2 产品协同工作。以下增强基于一组随以前的 DB2 for Linux, UNIX, and Windows 版本发布的 SQL 兼容性增强,减少了使一些应用程序在 DB2 环境中运行所需的时间和复杂性。

  • 更灵活且功能丰富的 CREATE TRIGGER 支持。触发器事件子句现在可包含多于一个的 INSERT、UPDATE 或 DELETE 操作,这意味着一个触发器可由指定事件的任何组合来激活。尽管可在单个 CREATE TRIGGER 语句中指定一个、两个或所有三个触发器事件,但一个触发器事件只能指定一次。您也可以使用在触发的操作中使用的新触发器事件谓词(INSERTING、UPDATING 和 DELETING)来测试激活触发器的事件。一个触发器事件谓词仅在编译的触发器定义的已触发操作中有效。最后,对于 PL/SQL 触发器,CREATE TRIGGER 语句中现在支持 FOR EACH STATEMENT 选项。您可以创建仅为每个语句触发一次的触发器。
  • 声明的用户定义数据类型和过程。现在可以声明位于一个复合 SQL(已编译的)语句本地的用户定义数据类型和过程。有关这些类型和过程的信息未存储在系统目录中。
  • 新的标量函数。INSTRB 函数返回另一个字符串中一个字符串的开始位置(以字节为单位)。TO_SINGLE_BYTE 函数返回一个字符串,其中的多字节字符会在可能时转换为等效的单字节字符。

时间旅行查询

时间旅行查询功能支持查询数据在过去任何时刻的状态或在未来某个时刻将具有的状态。这通过使用时态表存储数据更改历史(删除的行或已更新行的原始值)来实现此操作,以便您可以查询数据的过去状态。您可以将数据和时间范围同特定的数据行相关联,从而为表中的数据定义业务有效期。时间旅行查询有助于使现有的 DB2 表可感知时间并满足审计需求。它还有助于避免开发、实现和维护复杂的时间感知应用程序的成本。

您可以使用 ALTER TABLE 语句,轻松地为现有的表启用时间旅行查询功能。DB2 支持以下 3 种类型的时态表。

  • 系统时间段时态表依据系统时间来管理数据。DB2 会保留已更新或删除的行的运行历史。会为每行及其相应历史分配一对系统时间戳。当删除一行时,它会自动转移到一个面向用户和应用程序透明的历史表。
  • 应用程序时间段时态表管理业务时间。应用程序提供日期或时间戳来描述给定行中的数据在一个业务上下文中何时已生效或将在何时生效。
  • 双时态表同时管理系统时间和业务时间,使应用程序能够管理其业务数据的有效期,同时 DB2 会保留完整的数据更改历史。

DB2 10 是业界第一个提供了基于 ANSI/ISO SQL:2011 标准时态功能的数据库产品。DB2 中的时态数据管理功能已与所有其他数据库功能实现无缝集成。

自 DB2 Express 开始,大部分 DB2 版本都支持时间旅行查询。


数据安全性增强

行和列访问控制 (RCAC) 限制那些需要了解业务的用户访问数据。RCAC 使设置丰富的安全性策略变得很轻松。在 DB2 10 中,RCAC 由两种不同的方法实现,这两种方法弥补了传统的行和列访问控制方法的不足:行权限和列掩码。不会自动免除限制数据库用户。管理行权限和列掩码的功能取决于 SECADM,拥有 DATAACCESS 授权的用户不能再自由访问数据库中的所有数据。

  • 行权限是一个数据库对象,表示一个特定表的行访问控制规则;它在本质上是一个描述您可以访问哪些行的搜索条件。例如,一位医生只能看到代表她患者的行。
  • 列掩码也是一个数据库对象,代表特定表中的一个特定行的列访问控制规则,使用一个 CASE 表达式来描述您在访问该列时会看到什么内容。例如,一位出纳只能看到一个信用卡编号的最后 4 位数。列掩码消除了创建视图来实现访问控制的需要。

行权限和列掩码不需要任何应用程序更改;行和列访问控制基于对现有应用程序透明的特定规则。而且,您安全策略的实施不依赖于应用程序或工具访问数据的方式。RCAC 还简化了多租户机制,这意味着一些独立的客户或业务单元可共享一个数据库表,而并不知道彼此的信息。

您可使用 ALTER TABLE 语句为新表或现有表启用行和列访问控制。

RCAC 与 LBAC 有何区别?基于标签的访问控制 (LBAC) 是一种主要用于防御应用程序的安全模型。LBAC 要求数据和用户是分类的,并实施一组固定的规则。RCAC 是一种通用的安全模型,主要用于商业客户。RCAC 允许您创建自己的安全规则。

自从 DB2 Express 开始,大部分 DB2 版本支持行和列访问控制。


DB2 pureScale 增强

DB2 pureScale 功能是一种集群技术,它减少了业务增长的成本和风险。DB2 pureScale 支持您以近线性的效率和可预测的查询性能来扩展系统,而无需修改应用程序或更改分发数据的方式。

借助 DB2 pureScale 功能,多个数据库服务器(称为成员)可处理传入的数据库请求。这些成员在一个集群环境中操作和共享数据。集群缓存工具 (CF) 处理集中化的锁管理和全局缓存。如果一个成员失败,只有失败的成员所处理的数据库请求必需重新提交,所有其他正在处理的请求不会受到影响。但或许最大的优点是,您可以添加或删除成员来适应不断变化的工作负载,而无需更改应用程序,重新分发数据或调优性能。

在 DB2 10 中,DB2 pureScale 功能包含以下更改,这些更改也已包含在 DB2 9.8 FP4 中。

  • 支持拆分镜像 (split mirror) 备份和 SET WRITE 操作
  • CF 支持多个低延迟、高速的集群互联
  • 支持具有多个网络交换机的网络拓扑结构

DB2 10 pureScale 功能还包含其他改进,包括以下增强功能。

  • DB2 工作负载管理集成
  • 支持范围分区表
  • 监视和性能优化领域中的多项增强
  • 表空间级备份和恢复

DB2 pureScale 功能现在更紧密地集成了 DB2 for Linux, UNIX, and Windows 核心引擎,在 DB2 10 中,您可以在安装 Enterprise Server Edition、Workgroup Server Edition 或 Advanced Enterprise Server Edition 时安装该功能。建议为 DB2 pureScale 使用预先测试的配置,如 “DB2 pureScale” 中所述。


连续数据摄入

新的高速摄入实用工具将来自文件的数据以各种数据格式或通道传输到 DB2 表中。摄入操作很快,因为该实用工具拥有一种多线程架构,能够快速填充甚至分区数据库环境中的大型数据库。

摄入实用工具不会锁定目标表;它使用行锁定来最小化对同时处理同一个表的活动的影响。

摄入工具带来了丰富的数据操作功能,包括针对 INSERT、UPDATE、MERGE、REPLACE 和 DELETE 语句的 SQL 类接口,以及将 SQL 表达式应用到输入数据的能力。

您也可以指定要如何处理被摄入实用工具(使用 DUMPFILE 子句)或 DB2(使用 EXCEPTION TABLE 子句)拒绝的行。

连续数据摄入功能可在 Advanced Enterprise Server Edition 中找到。


一个包含丰富工具的环境

支持数据库管理和应用程序开发的工具可增强性能优势和整体生产力。


结束语

通过坚持低操作成本、易开发性和可靠性等重要设计准则,DB2 10 for Linux, UNIX, and Windows 提供了大量增强来帮助您节省时间和金钱。在开发和管理方面生产力的改进,为那些在日渐复杂且严苛的业务环境中运行的新一代应用程序提供了强力的支持。

参考资料

学习

获得产品和技术

  • 现在您可以免费使用 DB2。下载 IBM 软件下载:IBM DB2 Express-C 9.5,一个面向社区的免费的 DB2 Express Edition 版本,提供了与 DB2 Express Edition 相同的核心数据特性,还为构建和部署应用程序提供了一个牢固的基础。
  • 以最适合您的方式 IBM 产品评估试用版软件:下载产品试用版、在线试用产品、在云环境中使用产品或在 IBM SOA 人员沙箱 中花几小时学习如何高效实现面向服务的架构。

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=813424
ArticleTitle=DB2 10:DB2 10 for Linux, UNIX, and Windows 中的新功能
publish-date=05082012