最后,要意识到还有一些方面这里未讨论到,它们都是做好 SQL 调优工作所必需的。要正确分析 SQL 性能,需要的内容将不仅仅是 explain 结果。正确的性能分析需要:
实际的 SQL 语句
正在被访问和/或修改的对象的 DDL(或系统目录信息)的列表
内嵌 SQL 语句的 Delphi 代码
在执行 explain 时,存在当前的系统目录统计信息
了解将执行 SQL 语句的 DB2 环境(包括缓冲区和锁定参数等设置)
了解正在运行 SQL 的环境(包括操作系统、处理器的数目和类型以及内存大小等)
了解在执行(或将要执行)SQL 语句时,系统中的并发活动
可以将这些附加信息和 explain 输出一起使用,以估计任何给定 SQL 语句的性能。Delphi 代码很重要,它可以帮助您调节应用程序性能,因为 explain 不能提供有关内嵌 SQL 的高级语言的信息。explain 输出可以显示 SQL 语句的有效存取路径,不过,如果 SQL 语句嵌入在运行数千次的循环中,则性能很可能会受到影响。
使用 explain 来帮助确保索引被正确地用于连接谓词、本地谓词以及 GROUP BY 和 ORDER BY 子句,以避免排序。而且,应用您对表中数据的了解来确定正采用的连接类型是否正确,以及正在用于连接的内表和外表的表是否正确。对这些类型细节的注意会因优化的应用程序和较慢执行者的不同而不同。
结束语
有效地使用 Visual Explain 工具可以帮助 Delphi 程序员了解正在用于实现 DB2 SQL 请求的存取路径。有许多可供 DB2 选择的技术来实现对数据的请求 — 其中一些技术比其它技术要有效得多。博学的 Delphi 程序员可以使用 explain 来优化其代码,从而能有效地访问 DB2 数据。
关注此文的读者还看过: