摘要: 在本文中,我们将了解如何在您的生产数据库上使用 IBM? InfoSphere? Workload Replay 来验证 DB2? with BLU Acceleration 的 InfoSphere Optim? Query Workload Tuner (OQWT) 驱动实现的性能改 ...
概述
IBM DB2 with BLU Acceleration 是 DB2 10.5 版本引入的一个新特性,可以极大地提高复杂分析查询的性能。本文内容基于早期文章 “使用 Optim Data Tools 最大程度地利用 BLU Acceleration”,其中介绍了如何使用 IBM InfoSphere Optim Query Workload Tuner with BLU Acceleration 提高分析工作负载的性能(许多文章都介绍了这项令人兴奋的新技术,包括它的工作原理,如何将它用于自己的环境。
要确定现有的基于行的表在转换为基于列的表后能够受益,可以使用 OQWT,它是 DB2 Advanced Editions 的一部分。OQWT 4.1 版本引入了一些新特性,可使用基于成本的方法判断现有的基于行的表进行转换后是否有助于提高性能。
您可以使用 InfoSphere Workload Replay 测量和分析 DB2 BLU Acceleration 对分析工作负载性能的运行时影响。使用该工具首先捕捉生产环境中的一项工作负载,然后在启用了 BLU Acceleration 的预生产环境中重现它,如图 1 所示。
图 1. 使用 InfoSphere Workload Replay
InfoSphere Workload Replay 不同于其他测试工具的特别之处在于:它使您能够捕捉实际的 SQL 生产工作负载并在测试环境中重现,不必再设置复杂的应用程序架构来驱动 SQL 行为。InfoSphere Workload Replay 完善了现有的测试策略,使您能够评估硬件、软件、数据库或数据库服务器的配置更改对关键应用程序的影响。
常规的工作负载重现工作流可分为四个步骤:
- 捕捉一个工作负载。
- 准备重现该工作负载。
- 重新工作负载。
- 比较并分析工作负载。
本文将介绍如何通过这些步骤评估 DB2 BLU Acceleration 对工作负载运行时性能的影响。要进一步了解常规工作负载重现工作流及其任务和步骤。
建立基准工作负载
要对启用 DB2 BLU Acceleration 前后的性能进行比较,首先必须建立一个基准工作负载。
如图 2 所示,首先要在源数据库中捕捉一个分析类工作负载。在未启用 BLU Acceleration 的情况下,在目标环境中重现这一工作负载。然后,分析该工作负载在目标环境中的执行行为是否足够接近其在原始环境中的行为。
图 2. 在 DB2 v10.5 中建立一个基准工作负载
图 3 展示了一个 InfoSphere Workload Replay Web 控制台的示例,以及一个典型工作负载生命周期的各个阶段和随附的工作负载。具体步骤包括:
- 在 DB2 BLU 预生产环境中捕捉一个具有代表性的工作负载样例。
- 创建一个 Capture 报告,对工作负载进行验证。
- 对工作负载和 DB2 V10.5 目标数据库执行准备工作,以便在未启用 BLU Acceleration 的情况下第一次重现工作负载。这一步骤包括创建必要的数据库对象、加载数据、授予执行 SQL 的权限。
- 在目标数据库上重现工作负载。
- 创建一个 Comparison 报告,找出潜在的准确度方面的问题,比如 SQL 返回码、行计数差异和性能差异。
图 3. 已完成的基准工作流示例
这份基于执行时间的性能报告指出了两种工作负载的 SQL 性能差异,因此可以很容易判断出工作负载、事务处理或 SQL 级别是否出现倒退或改进。图 4 显示了一个例子。
图 4. 使用性能报告分析工作负载重现差异
在工作负载重现期间检测到的所有重大问题都必须得到解决。然后,重新执行工作流程中的步骤,直到重现后的工作负载的行为与原始工作负载的行为相近。现在,您已经拥有了一个可用于未来测试的基准工作负载。
分析 BLU Acceleration 对工作负载性能的影响
建立基准工作负载后,您可以导出已捕捉到的 SQL 以供 OQWT 使用,然后使用 OQWT 中的成本估算顾问程序(cost estimation advisor)确定捕捉到的工作负载是否能从 BLU Acceleration 中受益。如果顾问程序识别出合适的候选表:
- 在目标 DB2 V10.5 数据库环境中对部分(或全部)表启用 BLU Acceleration。
- 重现基准工作负载。
- 分析结果,然后获得性能差异。
- 重复此过程,直到不再识别出合适的转换候选对象,或已经实现了您的目标。
图 5 演示了这一过程,后面的小节会详细描述此过程。
图 5. 分析 BLU Acceleration 影响
将捕捉到的 SQL 导入到 OQWT
在 InfoSphere Workload Replay Web 控制台中,您可以采用与 OQWT 兼容的格式从 Performance 或 Accuracy 报告导出 SQL 数据。根据您最初发起导出操作的报告,您可以选择导出所有 SQL 或一个 SQL 子集,如图 6 所示。
图 6. 从 Performance 报告导出 SQL
对于每个惟一的 SQL 语句,导出的元数据包括执行计数和总的执行时间,这些信息是在重现期间收集的。
通过使用 OQWT,您可以从动态语句缓存、数据库性能监视器和文件等各种源头导入 SQL 工作负载。图 7 显示了一个例子。导出的工作负载重现文件可以充当一个 0QWT 源,以便进行 BLU Acceleration 分析。
图 7. 将捕捉到的 SQL 导入 OQWT
识别 BLU Acceleration 候选表
OQWT 4.1 版本引入了两个主要的 DB2 BLU 特性:Table Organization Advisor 和 Test Candidate Table Organization。
针对每个使用现有的非 BLU 表的 SQL 语句,Table Organization Advisor 将从 DB2 优化器收集它的成本评估。然后,找出工作负载中引用的表,忽略那些不满足 BLU 先决条件的表。剩下的符合条件的表将被转换为按列组织的表,然后针对整个工作负载再次收集查询成本评估。通过收集转换前后的成本评估,并考虑到所有用户定义的最小受益阈值,OQWT 将指出应当对哪些表进行转换。图 8 显示了一个例子。
图 8. 在 OQWT 查看表中组织建议结果
对于不符合条件的表,OQWT 也将给出原因。对于那些符合条件的候选表,如图 9 所示,将提供一些额外的信息,比如哪些 SQL 将会受到影响,以及预期的性能改变。
图 9. 转换为基于列的存储对 SQL 的预期影响
Test Candidate Table Organization 特性提供了 what-if 分析功能,使您能够手动选择应当进行转换的表。
如果 0QWT 识别出一个或多个转换候选表,那么您可以使用 IBM Data Studio 在目标数据库中将这些表从基于行的格式转换为基于列的格式。
对性能影响评估进行验证
当候选表被转换为可以使用 BLU Acceleration 并且数据库已经准备好进行重现时,您可以重现基准工作负载,然后创建一个 Comparison 报告来分析性能变化。如图 10 所示,在报告中,对启用 BLU Acceleration 前后 DB2 上的基准工作负载重现进行了比较。
图 10. Workload Replay Web 控制台上已完成的 BLU Acceleration 分析工作流
从 Performance 报告中可以很容易看到 BLU Acceleration 对工作负载的性能影响,如图 11 所示。
图 11. 分析 DB2 BLU Acceleration 对工作负载的性能影响
从这个报告视图中可以看到,重现期间的累计语句响应时间降低了,这意味着总的来说,DB2 处理可返回相同结果的 SQL 语句的时间缩短了。工作负载性能统计数据确认了有多少工作负载 SQL 语句得到改进或出现倒退,并且针对您的报告配置设置了一个最低的改进或倒退阈值。在前面的示例中,实测得出的性能改进超出了 OQWT 提供的评估。
SQL Improvements drill-down 报告将会找出响应时间缩短了的语句,如图 12 所示。根据占用时间指标对报告进行排序,从而查看受 BLU Acceleration 影响最大的 SQL 语句。
图 12. 查看 SQL 性能改进
通过在 SQL Details 报告中查看每条语句的详细信息,您可以找出异常值。图 13 展示了一个例子。
图 13. 每个 SQL 语句的详细性能信息
如果工作负载重现结果没有满足您的需求:
- 重置数据库。
- 使用 OQWT 按照不同设置重新分析工作负载;例如,使用 Test Candidate Table Organization 特性选择表的一个子集。
- 再次重现工作负载。
还可以评估建议的 BLU Acceleration 实现对其他工作负载的影响:方法是重现这些工作负载,分析它们与以前执行的工作负载重现的差异。
|