DB2 9 for z/OS 迈向颠峰

来源:百度文库 编辑:神马文学网 时间:2024/04/28 05:38:11

 

简介: 来自 DB2 Magazine 中文版。大型机 DB2 数据服务器配备了新的混合型 XML/关系引擎。安全改进、SQL 升级和性能改进使其更加完善。

标记本文!

发布日期: 2006 年 11 月 22 日
级别: 初级
访问情况 3 次浏览
建议: 0 (添加评论)

平均分 (共 0 个评分 )

 

DB2 9 for z/OS 是 IBM 的大型机关系数据库管理系统的最新版本,它提供了许多新的特性和功能。这些新特性中最重要的是支持 XML 作为本机数据类型,但这并非是全部的改进。IBM 还添加了更多的 SQL 功能、改进了性能并扩展了在线模式修改等原有特性。

Beta 测试人员自 6 月开始试用这个软件。现在,我们来讨论这些即将出现的新特性。

开始

首先,我们看看运行 DB2 9 所需的前提条件。必须运行 z/OS V1.7,或者带 Data Facility Storage Management Subsystem(DFSMS) V1.7、Language Environment Base Services 和 z/OS V1.7 Security Server Resource Access Control Facility(RACF)的 z/OS.e。但是,请记住,某些 DB2 9 功能(比如角色)需要 z/OS V1.8。另外,在迁移到 DB2 9 之前,必须处于 DB2 V8 的新功能模式并具有扩展的 Boot Strap Data Set(BSDS)。

DB2 9 for z/OS 可以在支持 z/Architecture 的任何处理器上运行,包括新的 Business Class 和 Enterprise Class 处理器、IBM System z9、zSeries z800、z890、z900、z990 或兼容的处理器。


回页首

XML 数据

DB2 9 中最大的技术进步是能够将对结构化数据和非结构化数据的管理组合在一起。与 DB2 9 for Linux, Unix, and Windows(在今年早些时候发布)一样,DB2 9 for z/OS 能够以本机格式存储 XML 数据。

“这有那么重要吗?” 您可能会问,“我们已经能够使用 XML Extender 在 DB2 中存储 XML 数据了,不是吗?” 但是,DB2 9 改变了游戏规则。您将能够在关系数据存储库中搜索和分析结构化数据,在 XML 存储库中搜索和分析非结构化数据而不需要对数据进行重新格式化。这种方式的新颖之处在于,它支持本机 XML,这意味着支持两种存储机制:传统的 SQL/关系存储和新的 XML 存储(见图 1)。


图 1. DB2 新的 XML 存储和界面

在 DB2 9 中存储 XML 数据时,不再需要将它存储为字符大对象(CLOB)或者将它分解进表中。DB2 9 将 XML 作为一种新的数据类型来处理,与关系数据不同,这种数据类型存储在自然的层次结构中。DB2 9 提供了混合型数据服务器功能,这在行业中是首创的。尽管 XML 和关系数据是分开存储的,但是它们都在同一个 DB2 引擎的控制之下。

那么,在 DB2 9 中如何支持 XML 呢?将 XML 当作另一种数据类型。在 CREATE TABLE 语句使用 XML 数据类型,从而将列定义为 XML 类型的。对于表中的每一行,XML 类型的每个列可以容纳一个 XML 文档。尽管 XML 文档在逻辑上与一行相关联,但是 XML 和关系列以不同方式存储。关系列存储在我们熟知的传统结构中,而 XML 数据存储在层次化结构中。

无需为此担心。IBM 已经将 XML 和关系数据无缝地集成在一起,从而简化了应用程序开发,并用高度优化的 XML 索引优化了搜索性能。

DB2 9 支持 XPath 并包含用来支持 XML 模式定义的表。IBM DB2 实用程序已经得到扩展,可以用来管理 XML 数据。我不打算过分深入地讨论 XML;只需指出 XML 支持是 DB2 9 中最大的新特性。但它不是惟一的改进,所以我们来看看其他进步。


回页首

在线模式修改

在线模式修改是 DB2 V8 提供的关键特性之一。在 DB2 9 中,在线模式修改得到了扩展,简化了更多种类的数据库定义修改,现在这个特性称为 Database Definition On Demand。

在线表空间重组得到了重大的改进。在 DB2 V8 中,在对分区的表空间中的多个分区进行重组时,BUILD2 阶段会花费很长时间。DB2 8 消除了 Data Partitioned Secondary Indexe(DPSI)的负担;DB2 9 取消了所有辅助索引类型的 BUILD2 阶段。

另一种新的在线模式修改功能支持通过克隆用一个表快速地替换另一个表。这种技术甚至能够避免对包进行重新绑定。

DB2 9 中有一种新的表空间类型,它结合了分段表空间和分区表空间的性质。在使用时,DB2 会根据需要自动地添加分区以支持快速增长的数据。

在 DB2 9 中,还可以在 STOGROUP 上定义 SMS 构造(MGMTCLASDATACLASSSTORCLAS)并修改这些构造。还可以修改表空间和索引日志参数。

DB2 9 甚至增加了一个对以前的 DB2 代码进行修改的新功能,这样就不需要 IPL。


回页首

新的查询功能

正如我们对新版本所期望的,DB2 9 提供了许多新的 SQL 功能。包括新的 SQL 数据操纵语句,以及 DECFLOAT(浮点小数)、BIGINT(8 字节的整数)、BINARYVARBINARY 等新的数据类型。

DB2 for Linux, Unix, and Windows 在 SQL SELECT 语句中支持 INTERSECTEXCEPT 已经有一段时间了;在 DB2 9 中,z/OS 平台上也提供了这种功能。可以使用这两个集操作符简化某些 SQL 语句。可以认为它们与 UNION 操作相似。

使用 INTERSECT 匹配结果集。如果两个结果集中的数据是相同的,那么它就会起作用。当指定 INTERSECT ALL 时,结果包含在两个结果集中都存在的所有行。如果指定 INTERSECT 但是不带 ALL 选项,那么结果中会去掉重复的行。例如,下面的 SQL 将显示在美国的既是顾客又是职员的所有人(不包含重复的行):


SELECT last_name, first_name, cust_num                FROM CUST                WHERE country = ‘USA’                INTERSECT                SELECT last_name, first_name, emp_num                FROM EMP                WHERE country = ‘USA’;                

另一方面,EXCEPT 会组合来自两个结果集的不匹配行。其他一些 DBMS 实现将这种操作称为 MINUS 操作。当指定 EXCEPT ALL 时,结果包含在第二个表中没有对应行的第一个结果表中的行,并保留所有重复的行。如果指定 EXCEPT 但是不带 ALL 选项,那么结果中会去掉重复的行。例如,下面的 SQL 将返回在 TABLE1 中存在而在 TABLE2 中不存在的条目:


SELECT item FROM TABLE1                EXCEPT                SELECT item FROM TABLE2;                

在 DB2 9 中,可以在 fullselect 级上指定 ORDER BYFETCH FIRST 子句,而不是只能在 SELECT 语句级上指定。这意味着可以对在 UNION(以及 INTERSECTEXCEPT)的任意一侧选择的数据进行排序和限制。

DB2 9 还支持 MERGETRUNCATE 语句。MERGE 语句会将两个表的数据合并在一起。目标表中与源表匹配的行会被更新,目标表中不存在的行会被插入。当然,可以使用多个选项控制 MERGE 的行为。TRUNCATE 语句可以快速地从表中删除所有数据。

另一个出色的 SQL 新特性是,可以在 DELETEUPDATEMERGE 语句中执行 SELECT。DB2 9 允许从受到 DELETEUPDATEMERGE 语句影响的行中检索列,这样就用一个 SQL 调用替代了多个 SQL 调用。

INSTEAD OF 触发器使我们能够用触发器替代视图。在触发时,会运行触发器代码,而不是触发它的代码。DB2 9 还改进了对本机 SQL 存储过程的支持,它将存储过程代码集成进 DB2 引擎中,因此不必转换为 C 代码。

其他查询功能包括 RANKDENSE_RANKROW_NUMBER 的 OLAP 扩展,并用一些新功能加强了文本处理,比如大小写不敏感的比较、按照文化进行排序以及对表达式进行索引。


回页首

安全性和法规遵从性

Sarbanes-Oxley 和 HIPAA 等政府法规对管理数据的方式做出了规定。为了遵从这些法规,需要对数据库安全性和审计功能进行改进。

基于角色的安全授权是 DB2 9 中一项重要的改进。在授予和控制授权方面,角色比组或用户更加灵活。角色是一组拥有同样的安全特权的用户。属于某个角色的用户可以执行这种角色有权执行的任务和访问。

与使用用户或组相比,使用角色来授予权限更容易管理。例如,假设 DBA 将访问几个表的权限授予一组用户。要想改变表的数量,DBA 需要将新增的表的权限授予现有用户。如果使用基于角色的安全机制,DBA 就只需声明用户属于某个角色;然后在角色级上添加任何新的权力。

DB2 9 还增加了一个可信任安全上下文,从而通过识别可信任连接(DDF、RRS 和 DSN)降低了管理密码的复杂性。定义之后,通过已定义附件和源服务器进行连接的特定用户可以与 DB2 建立可信任连接。在这个上下文中定义的用户也可以定义为角色。

Secure Socket Layer(SSL)实现为线上的数据提供了加密机制,改进了 DRDA 使用的现有数据加密技术。

最后,DB2 9 改进了审计过滤,包括根据用户 ID、工作站、应用程序名、包位置集合或名称、集合 ID、关联 ID 和角色包含或排除审计记录。


回页首

性能改进

DB2 9 为改进性能提供了许多新特性。由于许多改进,INSERT 的性能大大提高了,这些改进包括对表达式进行索引的能力和随机化索引键。日志记录性能也大大提高了;提供了更大的索引页大小选项(8K、16K 和 32K),从而减少了页分割的数量。在 DB2 9 中页分割的效率也更高了。

如果索引性能需要针对插入操作(而不是后续检索)进行优化,那么可以使用新的 APPEND 选项通知 DB2。如果需要对数据进行随机化以避免插入热点,那么可以使用新的随机化索引键功能。

DB2 9 还增加了用户广泛要求的 “无日志” 表空间(在这种表空间中数据修改不记入日志中)。使用这些表空间可以消除日志瓶颈;但是,可恢复性受到了限制。在 DB2 9 中,日志记录特性可以打开和关闭,所以可以在关闭日志记录的情况下进行一系列并行的高性能插入,之后再打开日志记录。无论如何,要谨慎地使用这些表空间。另外请记住,对于单一的顺序插入应用程序,它们不会显著提高性能。

IBM 还对 DB2 优化做了几项改进,包括 DB2 统计数据的柱状图,使 DB2 能够更好地理解在范围内倾斜的数据。DB2 优化器可以跨查询块优化进行部署,不再只限于每次一个查询块。另外,稀疏索引和内存内数据缓存技术(只在特殊情况下使用)在 DB2 9 中已经得到改进,可以用于更多的场合。在星型模式中使用多个索引的能力也已经改进了。

图形化的 EXPLAIN 已经改进成 Optimization Support Center,增强了分析和改进查询性能的设施。

硬件与 IBM System z 和 z/OS 的协作也提供了性能收益。DB2 以独特方式使用 z/Architecture 指令集,而且最新的指令改进了可靠性、性能和可用性。而且,DB2 与硬盘和通道改变(DS8000,每秒 4 Gb 通道,MIDAW)的结合使用显著提高了数据速率。

可以将工作负载转移到 zIIP 上,从而降低拥有成本。在 V8 中,SQL 过程无法在 zIIP 上运行;但是,DB2 9 上的本机 SQL 过程语言使过程可以进行 zIIP 处理。

DB2 9 还做了内存改进。DDF 和 DBM1 在 bar 上使用共享内存。在 DB2 9 中,更多的 DB2 数据结构转移到了 bar 上。

其他 DB2 9 性能改进包括更好的 LOB 性能,以及在使用大量变长列时更好的变长数据性能。


回页首

实用程序

DB2 9 提供了一些显著的实用程序改进。REORG 取消了所有辅助索引类型的 BUILD2 阶段。LOADREORG CPU 时间改进了 10% 到 15%。另外,DB2 提供了一个在线 REBUILD INDEX


回页首

DB2 9 中取消的特性

在 DB2 中引入新特性和改进特性的同时,也取消了陈旧的特性。DB2 9 不再允许创建简单的表空间。目前,DB2 将继续支持现有的简单表空间,但是不允许创建新的。请记住,迁移到 DB2 9 上之后,删除的任何简单表空间必须重建为分段表空间或分区表空间。

DB2 Estimator 以前可以从网上免费下载,但是对于 DB2 9 是不可用的。在 V7 中稳定下来的 Net.data 将不再得到支持。IBM WebSphere 是 IBM 用来将 DB2 数据交付给 Web 应用程序的战略性解决方案。

JDBC/SQLJ Driver for OS/390 and z/OS 支持已经取消了。所有 Java 应用程序和 Java 例程必须修改为使用 IBM DB2 Driver for JDBC and SQLJ(以前称为 DB2 Universal JDBC Driver)。

另外,DB2 9 不再支持 DB2 管理的存储过程。需要将所有东西迁移到 WLM 管理的存储过程空间。

取消的其他特性包括:

  • AIV Extender
  • Text Extender
  • Net Search Extender

回页首

进一步学习

本文可以作为您学习 DB2 9 的起点。请从 IBM 那里了解更多细节。(请将下面的页面加为书签,从而及时了解 DB2 的最新版本和 IBM 支持:ibm.com/db2/zos/support/plc。)

DB2 9 提供了许多令人振奋的新特性,使 DB2 for z/OS 数据服务器保持在性能、可用性和功能性方面领先。我会继续使用它。


参考资料

  • 本文从 DB2 Magazine 期刊取得授权并进行翻译,参见 DB2 Magazine 站点 上的 英文原文

  • DB2 9 技术资源中心

  • IBM DB2 for z/OS

  • IBM DB2 9 for Linux, Unix, and Windows

  • IBM Systems Journal issue on XML

  • IBM DB2 Universal Database for z/OS

  • XPath Tutorial

  • W3C XML Site

关于作者

Craig S. Mullins is a Director of Technology Planning for BMC Software, located in Houston, Texas. Craig has extensive experience in the field of database management having worked as an application developer, a DBA, and an instructor with multiple database management systems including DB2, Oracle, and SQL Server. Previously, Craig worked as a Research Director with the Gartner Group covering the field of database administration. Craig is the author of DB2 Developer's Guide, the industry-leading book on DB2 for OS/390, and a new book titled Database Administration: Practices and Procedures, which was published by Addison-Wesley in June 2002. Additionally, he is a contributing editor and regular columnist at www.dbazine.com, he writes the monthly DBA Corner column for Database Trends & Application magazine, and he writes the quarterly Database Report column for The Data Administration Newsletter portal. You can contact Craig via his Web site at http://www.craigsmullins.com.

建议



0 条评论 | 添加评论举报不良信息


快来添加第一条评论

添加评论



回页首

商标  |  My developerWorks 使用条款与条件

static.content.url=http://www.ibm.com/developerworks/js/artrating/ SITE_ID=10 Zone=Information Management ArticleID=444587 ArticleTitle=DB2 9 for z/OS 迈向颠峰 publish-date=11222006 author1-email= author1-email-cc= url=http://www.ibm.com/developerworks/cn/data/dmmag/dbt11q4/dbt11q4_f4/index.html