IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Information Management  >

专家访谈: Matt Huras 与 Linux、UNIX 及 Windows 上的 DB2 版本 8 的增强功能

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

Matt Huras, 著名工程师, IBM 多伦多实验室

2002 年 7 月 01 日

从一开始,Matthew Huras 就是 Linux 版、UNIX 版 和 Windows 版 DB2 通用数据库的一名首席设计师。与 Matt 见面并预先了解他在今年的数据管理技术会议(Data Management Technical Conference)上将讨论什么内容,包括即将发行的 DB2 的增强功能。

照片:Matt Huras

Matt Huras 是 IBM 多伦多实验室的 DB2(r)通用数据库(tm)开发部门的数据管理小组的首席架构设计师兼开发经理。他主要研究 DB2 UDB 存储引擎,包括索引、数据管理、缓冲、OS 服务、实用程序和高可用性。Matt 1984 年进入 IBM,自 1991 年以来,他就一直是 DB2 开发小组的首席设计师。Matt 1984 年毕业于 University of Waterloo,获得计算机工程的科学学士学位,1992 年毕业于 University of Toronto,获得计算机工程的工程学硕士学位。您可以通过 huras@ca.ibm.com与他联系。

DB2DD:Matt 先生,非常感谢您接受我们的采访,并且让我们预先了解了您将在阿纳海姆举行的 Data Management Technical Conference(数据管理技术会议)上谈论的内容。在我们深入细节之前,您能否多给我们介绍一些关于您如何结束 DB2 方面的工作以及您使用该产品时获得的技术经验?
Matt:我接触 DB2 已经有很长时间了:我带头进行了修补引擎处理模型的 DB2/6000 V1I 工作的最初设计,将 OS/2(r)产品(它完全运行在用户进程的地址空间内)的逻辑分割成一个狭窄的用户部分和一个较大的服务器部分。后来,我领导了将引擎转换为使用多线程设计的工作,再后来,在我的带领下,我们努力合并 PE V1 和 DB2 公共服务器(DB2 Common Server)代码库形成了 DB2 通用数据库(DB2 Universal Database)。

DB2DD:您演讲的标题是“DB2 技术预览(A Technical Sneak Preview of DB2)”。您将介绍版本 8 的哪些重要功能?
Matt:这个发行版中有很多重要功能,我无法尽述。我要重点介绍的内容可以分成三大类:

  • 第一类讲述了高可用性功能。随着 DB2 成为企业服务器的选择,高可用性功能成了我们的客户非常关心的一个重要问题。因为客户需要数据几乎是持续可用的,所以我们对可用性作了一些增强来实现这一点。
  • 我要讨论的第二组增强功能,主要侧重于那些使管理任务更容易的地方,并且包括改进的管理工具、性能建议和其它的可用性及可服务性的增强功能。同样,这对我们的客户也非常重要,我们的客户需要从他们的管理员那里获得更高的生产率,这些增强功能通过允许他们把重点更多地放在扩展业务而更少地放在可以更简便的自动完成的日常工作上,可以满足客户的需求。

DB2DD:这是否和我们听说的 SMART这种东西有关?
Matt:即将发行的增强功能中的一些功能确实反映了 SMART 的进步,但是还有许多其它可用性增强功能,例如,帮助管理员进行工作的 图形工具。通过使管理任务更简单,我们希望更多的人将利用先进的技术功能(包括分区技术)。

DB2DD:那么,读者有望在下一个发行版中看到的第三类增强功能是什么?
Matt:第三类增强功能包括性能和可伸缩性基本区域的持续改进。这一类增强功能包括诸如 DB2 公共客户机(DB2 Common Client)、用于改善可伸缩性和内存使用的密钥基础架构改进、空值和缺省值压缩、一个新的索引类型以及我认为会令许多人满意的多维群集(multidimensional clustering)。

DB2DD:那么,让我们从多维群集开始吧。什么是多维群集?
Matt:多维群集是一个独特的新功能,它允许同时按照几个不同的“维”对数据分群。尽管我正在使用的是数据仓储意义上的术语“维”(按照不同的维(诸如区域或年)查看数据的方法),但是这个功能不仅限于数据仓储。它有点类似于能在同一个表上定义多个不同的群集索引,所以,按照所有那些索引进行的范围扫描都能获得最佳的磁盘存取模式。您知道,目前这是不可能的,但是有了版本 8,就可以通过多维群集实现这一点。

DB2DD:听起来很有意思,但我还是没完全明白。您能不能介绍的更详细些?
Matt:用图片解释会容易的多。如果您看看 图 1,就可以看到目前群集是如何工作的。所有的索引都是基于记录的,这意味着群集只能在一维中发生,例如仅按照日期、或仅按照区域,不能既按照日期又按照区域。即使用一维群集,也不能保证您会保持群集,因为在可用空间用完之后(至少在您进行数据的下一次重组之前),群集趋向于分解。图表中显示了这些影响。Region 索引被定义为群集索引;您可以看到对它的大多数记录标识都进行了分群,但是有一些记录标识没有分群。不能对 Year 索引分群,这当然会反映在它的记录标识中。


图 1. 目前,群集可以随时间分解
群集可以随时间分解

结果,诸如 SELECT * FROM T1 WHERE YEAR=99 这样的查询可能会产生大量随机和/或顺序的 I/O(输入/输出),一般会引入包含符合条件的行和不符合条件的行的页面。

DB2DD:我明白了。那么,多维群集如何对这个图片进行更改呢?
Matt:好,看看 图 2,它显示了多维群集。使用多维群集时,按照定义好的群集维数以块为单位对多个表进行管理。您也不会碰到群集分解这样的问题。因为每个 INSERT 透明地把行放在一个现有块(它满足所有的维)内,或者创建一个新块以存储行,所以能保证群集。群集维数中的查询仅对被选定的数据进行绝对必要的 I/O 操作。


图 2. 有了多维群集,就可以维护群集了
多维群集

维数索引也是基于 的。这些索引中的每个键都指向一组连续的页面(即,一个块),并且这些页面中的每行都符合那个键的条件。请注意,这些块索引一般都比基于记录的索引小得多,因为一个单独的键代表许多行。顺便说一句,仍然可以在多维分群的表上创建基于记录的索引。这一定会很有用,例如,对于随机单行存取。

DB2DD:您能否给出一些受益于多维群集的查询类型示例?
Matt:当然可以。让我们创建一个名为 SALES 的表,并且用新的 ORGANIZE BY 子句告诉 DB2 我们想如何对数据分群。

CREATE TABLE sales
   (Customer VARCHAR(80),
    Region     CHAR(5)
    Year        INT) 
ORGANIZE BY DIMENSIONS (Region, Year) 

现在,假设我们想要发出下列查询:

SELECT * FROM sales
   WHERE   
    Region = 'West' AND Year = 00

通过对区域块索引和年块索引执行一个 AND 操作,该查询利用多维群集得以很好地实现。例如,我们假设 Region 索引指出了所有 Region='West' 的行都在块 5、6 和 11 的页面上。我们还假设 Year 索引指出了 Year=00 的所有行都在块 11、99 和 1025 的页面上。将这些块列表一起 AND,产生一个包含一个块(块 11)的块列表。然后对块 11 单独进行一个大块的 I/O 操作,该块的最小相关扫描返回所有符合条件的行(因为所有的行都保证是符合条件的,所以不需要判定)。

在会议上,我还将讨论关于内部机制和其它情况(在这些情况下,多维群集确实可以改进查询处理)的更多内容。

DB2DD:您能否简要地谈谈下一个发行版中的一些高可用性的增强功能?
Matt:下一个发行版中将出现大量极好的功能,包括在线表重组、在线索引重组、在线索引创建、动态配置参数、在线删除容器的能力,其实那只是冰山一角。在会议上,我将用大部分时间来讨论在线重组和在线加载的能力;即,不必为了操作而中断在线事务。

DB2DD:我们能否再回到 SMART 上一会儿?在下一个发行版中,DB2 SMART 的焦点领域是什么?
Matt:我可以略微谈谈这个问题,但是每个人都应该尽量看看 Jessica Escott 在会议上就此发表的谈话。他将对这个问题进行更详细地讨论。DB2 主要的重点领域包括自我恢复能力、提供专家设计建议的能力、自动恢复能力,以及进行自维护能力。

我们正在做的一件事情就是添加自动的健康管理框架,它将允许人们定义特定“警报”状态的条件并允许人们在满足条件时提供要发生的操作。例如,如果一个表空间达到阈值的 75%,它将触发发送一封电子邮件或者触发运行一个脚本,或者触发制作一个页面等。这一类中的其它功能还包括一个自动配置功能。这个功能使用高级算法、机器资源以及负载知识为用户设置许多参数,包括诸如缓冲区池的内存设置、排序、锁列表、日志缓存大小、预取程序和页面清除器等之类的非平凡设置。我们在几个客户站点运行 Beta 测试,藉此改进那些已经由有经验的 DBA 手动调整过的客户产品负载的性能。

这仅仅是个开始。总之,还有其它功能,这些功能将:

  • 帮助您开始着手工作并在数秒内采用一个良好的配置
  • 帮助您制作大部分模式
  • 当系统需要您的帮助时,通知您
  • 万一发生故障,使 DB2 能继续运行
  • 解决问题并恢复一个较简单的进程

DB2DDJanet Perna提到过 DB2 将有大量面向开发者的很好的东西,尤其是在开发环境方面。您能告诉我们关于这方面的信息吗?
Matt:Connie Nelin 和 Abdul Al-Azzawe 准备在会议上详细介绍这方面的内容。Abdul 将讨论新的 DB2 Development Center,它使得开发存储过程、用户定义的函数(user-defined function,UDF)更加简单,它包括特殊的 MQSeries®、XML 和 OLE DB2 表 UDF。它还将支持结构化的数据类型、一个集成的 SQL 调试器,以及项目的导入、导出和部署等等。它还将和 Microsoft® Visual Studio 工具(包括 Visual Basic、Visual C++ 和 Visual InterDev)很好地集成。

而且,Connie 还将讨论我们为了开发 Web 服务和消息传递应用程序而进行的到 WebSphere® Studio 工具的集成。

DB2DD:我猜 DB2 开发小组一直都很忙。
Matt:我几乎无法谈及所有即将出现的创新的新功能。这个发行版旨在这几方面提供重大的改进:可用性、易于使用和降低所有权成本、应用程序开发以及性能和可伸缩性。我希望每个人都能参加今年的会议,大家在会议上可以就自己想知道的问题向我随便提问。我真的期待着大家的提问。



关于作者

Matt Huras has authored this article




对本文的评价

太差! (1)
需提高 (2)
一般;尚可 (3)
好文章 (4)
真棒!(5)

建议?







回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款