DB2 Performance Expert 简化性能管理和调优 (2)
执行次数
该值是一条 SQL 语句已经被执行的次数。您可以使用该元素来判定系统中执行最频繁的 SQL 语句。 每条语句占用的 CPU 时间
这个数字说明了一条 SQL 语句占用的所有 CPU 时间。可以将该元素与“已经过去的执行时间和“每条用户语句占用的 CPU 时间一起使用,来评价语句的最大花费。
最佳预备时间: 该值是预备一条特定的 SQL 语句所需要的最短时间。可以用该值来判定编译耗时的 SQL 语句。
最差预备时间:
该值是预备一条特定的 SQL 语句所需要的最长时间。可以用该值来判定编译耗时的 SQL 语句。
结论
这个执行监视元素可以您帮助判定系统中执行最频繁的 SQL 语句。在本例中,某个查询运行了 500 次,并且进行了 500 次排序。这是进行查询优化的很好的一个选择,可以检查排序值,并验证是否需要创建新的索引。
分析缓冲池
DB2 PE 步骤
在 System Overview 面板中选择 Buffer Pool Analysis。
图 19. System Overview 在 Buffer Analysis 中选择 File-> Generate new report。
图 20. 缓冲池分析 图 21显示了缓冲池跟踪报告的结果。 图 21. 缓冲池跟踪报告 下拉滚动条,查看缓冲池分析的具体内容。 图 22. 缓冲池分析的具体内容 方法 上一页12345678910下一页 Buffer Pool Analysis 中提供了缓冲池跟踪报告,它以 HTML 的格式显示,或者以可选的图形交互式报告格式显示。 缓冲池命中率 这个比率说明了为页面请求提供服务时,数据库治理器不需从磁盘装入页(即该页已经在缓冲池中)就能处理页请求的时间百分比。
计算: BPHR = (1 - ((缓冲池数据物理读 + 缓冲池索引物理读) / (缓冲池数据逻辑读 + 缓冲池索引逻辑读) ) ) * 100% 索引命中率 这个比率表明了可以在缓冲池中找到的页面能够满足的对索引页的所有读请求所占的百分比。
计算: IHR = (1 - (缓冲池索引物理读 / 缓冲池索引逻辑读) ) ) * 100% 数据命中率 这个比率说明了可以在缓冲池中找到的页面能够满足的对数据页的所有读请求所占的百分比。
计算: DHR = (1 - (缓冲池数据物理读 / 缓冲池数据逻辑读) ) ) * 100% 结论 缓冲池命中率大于 80% 被认为是理想的。对于 OLTP 系统来说,该值的理想情况是尽可能接近于 100% (索引命中率更是如此)。
要提高缓冲池的命中率,可以增加缓冲池的大小,也可以考虑分配多个缓冲池,可以为每个经常访问的具有自己的表空间的大型表使用一个缓冲池,也可以为一组小型表使用一个缓冲池。
监视系统的健康状况
DB2 PE 步骤 在 System Overview 面板中选择 System Health。
图 23. System overview 在导航器中选择 Data View。
图 24. Data view
右击 Open Predefined Data View。
图 25. Open Predefined Data View
选择您要监视的数据库。 图 26. Open Predefined Data View - 选择数据库 图 27给出了系统健康状况视图的一个例子。 图 27. System Health View 方法 System Health 视图以图形化的方式在数据视图中显示了很多重要的性能计数器。您可以使用预定义的数据视图,也可以定制自己的数据视图。
结论 System Health 是一个理想的图形化监视重要性能指标的工具。一旦定义之后,它们就可以用来在 System Overview 面板中显示系统性能数据。
结束语 本系列文章的第1部分对 DB2 Performance Expert 进行了简介,第2部分又展示了可以用来简化数据库调优任务和系统治理工作的具体方法。您可以使用 DB2 PE 来帮助理解影响性能的多个因素,例如索引、缓冲池的使用、语句缓存、锁、重构要求等等。另外,它还可以用来存储性能数据,供以后分析,并根据您定义的各种因素产生警报。 致谢 非凡感谢 IBM 开发实验室的 DB2 性能专家 Ute Baumbach,是他审校了这篇文章;感谢 IBM 美国高级技术支持中心的 Cintia Y Ogura,是他为本文提供了教学材料。;