Posted on 2010-05-15 23:54
Prayer 阅读(400)
评论(0) 编辑 收藏 引用 所属分类:
DB2
获得关于设计索引以及数据分区键、物化查询表、IBM® DB2® Universal Database™(DB2 UDB)多维聚类的专家帮助。Design Advisor 是 DB2 UDB 内置的,它能提供您所需的帮助。下面介绍了如何将它用于 OLTP 数据库。
简介
DB2 UDB V8.2 引入了一种名为 Design Advisor 的新工具,该工具使用范围更广,可用来替代 Index Advisor。除了索引外,Design Advisor 还提供关于物化查询表(MQT)、多维集群表(MDC)和数据分区功能(Data Partitioning Feature,DPF)分区键的建议。 即使对于那些只对索引感兴趣的 DBA,Design Advisor 也好于先前版本的 Index Advisor。本文是由两部分组成的一个系列的第 1 部分,旨在探索 Design Advisor 在在线事务处理(online transaction processing,OLTP)数据库方面的使用,主要关注的是如何设计适当的索引,以取得较高的性能。
通过介绍一些特定的例子、考察一些陷阱和常见问题,并突出强调 V8.2 的增强,我们将演示该工具的效用。第 2 部分将介绍关于 MQT、MDC 和 DPF 分区键的更多细节,重点分析数据仓库环境。
Design Advisor 的价值
Design Advisor 所提供的建议能与数据库调优专家的建议相媲美。对于非专家来说,该工具的好处是可以获得更好的设计。对于专家来说,Design Advisor 可以节省他们宝贵的时间,因为 Design Advisor 可以提供一个初始的设计,然后由专家进一步改进设计。Design Advisor 还可以提供对专家的设计的独立确认。
Design Advisor 可以使性能提高多少百分比呢?这取决于初始设计的质量。然而,提高的幅度是很明显的。题为 DB2 UDB: The Autonomic Computing Advantage 的 DB2 Magazine 电子书中包含一个完整的案例研究,该研究显示,性能提升了 84%;也就是说,设计经过改进之后,对于相同的工作负载,现在的运行时间是原来的 15%。
Design Advisor 何时有帮助
在很多情况下,DBA 都希望使用 Design Advisor。其中两种重要的情况是,在生产之前使用 Design Advisor,以及在将一个系统投入生产之后使用它。关于在生产之前何时使用 Design Advisor 的例子包括:
- 在应用程序开发的初始阶段创建一组新的索引。
- 在应用程序系统测试期间改善性能不佳的查询。
还可以将 Design Advisor 用于生产系统,根据以下情况更改索引:
- 实际生产情况与开发期间的估计有差别。例如,某一列被访问的频率超过预期;某个表远远大于预期;某些查询比预期执行得更频繁。
- 在系统的运行生命周期中模式设计发生了改变。应用程序在其运行生命周期中常常会得到调整,例如为生成报告而添加一个新的列或新的查询。
- 数据库老化。随着数据库的老化,性能将逐渐下降,因为表会越来越大,使用模式也发生了变化,并且工作量也有所增加。
Design Advisor 经常与其他 DB2 特性一起使用。例如:
- Health Monitor。您可以设置 Health Monitor,使之在出现排序溢出之类的情况时发出警报。然后采用 Design Advisor 来帮助发现有助于缓解这种性能下降的索引。
- Visual Explain。您可能正在使用 Visual Explain 或相关特性来检查查询访问计划。您也许注意到被扫描的表过多。那么这时可以使用 Design Advisor,看看索引是否能导致不需要扫描那么多表的访问计划。
Design Advisor 概述以及 V8.2 中的新特性
您可以将 Design Advisor 作为一种 GUI 工具,或者通过命令行来使用它。在 V8.2 中,您可以从一个新的地方来访问这个 GUI。在 Control Center 中,可以右击您想要处理的数据库。在弹出的菜单中,选择 Design Advisor...。
命令行命令仍然是: db2advis。是使用 GUI 还是使用命令行?这基本上取决于个人偏好。两者在功能上差别很小。
确定需要使用 Design Advisor 之后,请遵循下面列出的步骤来使用该工具。对于每一步,我们列出了 V8.2 中适用于 OLTP 数据库(其中最相关的就是索引)的一些关键的增强。
表 1. V8.2 中的新特性
步骤 |
V8.2 中的新特性 |
1. 收集和描述提供给 Design Advisor 的工作负载 |
该工具支持其他提供工作负载的方法:(1) 在 GUI 中从一个文件装载工作负载,或者 (2) 从 Event Monitor 获得工作负载 |
2. 决定何时以及如何运行该工具 |
由于采用了新的工作负载压缩技术,所以运行该工具时所需的资源更少 |
3. 回顾建议 |
(1) Design Advisor 现在考虑更大范围的索引类型,包括:双向索引和带 INCLUDE 列的 UNIQUE 索引。(2) 有更多关于建议的详细信息:例如,与各条 SQL 语句相关的改进 |
4. 后续步骤 |
您可以生成关于建议的一个报告,并将其保存到一个文件中 |