调优联邦查询
2008-09-17 16:31:35 来源:WEB开发网例如,通过使用 db2 命令的 -l 选项,可以创建一个日志文件,文件中包含查询的开始时间和结束时间。
db2 -l < log file name > -tvf
< file containing SQL >
您还可以使用 db2batch 实用程序记录查询计时。这个标准实用程序是 DB2 附带的,用于基准化查询。该工具最简单的用法是这样的:
db2batch -d < database name > -f
< file containing SQL >
另一个用于监控联邦查询的执行情况,以及监控资源利用情况的得力工具是 DB2 snapshot。snapshot 显示消耗的时间和有关联邦查询的其他关键信息,以及联邦查询的所有远程分段。表 3 展示了启动 snapshot 命令的两种方法。
在为 Linux、Unix 和 Windows version 8 等环境设计的 DB2 UDB 版本中,IBM 创建了很多基于 snapshot API 的用户定义函数。这些 UDF 使用 SQL 语法来调用,它们分行和列返回 snapshot 的值。我推荐使用的这些新函数为您提供了获得调优的关键性能的标准方式。这些技术可以在同类软件间共享,并且是可移植的。将 snapshot 函数输出与数据库编目信息相连接的这种能力优化和增强了收集过程,并加快了解决问题的速度。一些非常复杂的公式可以封装在 SQL 语句或存储过程中。(要了解关于 snapshots 的更多信息,请参阅参考资料中的文章)。
您可以使用 CREATE SERVER 命令永久地设置 DB2 II 对象的选项。为了临时设置这些选项,可以使用 SET SERVER 选项命令。该命令的语法如下:
set server cpu-ratio to 0.1
for server ben
在以上的 SET SERVER 例子中,CPU-RATIO 被设为 0.1,但只在当前会话的生命周期内有效。在调优查询的时候请使用这个命令,因为它使您可以重复测试不同的情况,并使用 Explain 实用程序检查结果。与创建多个带不同选项的服务器,或者通过删除已有的服务器对象来更改设置这些做法相比,这种方法干扰更少,并且也灵活得多。
为了确定联邦查询某一部分的各项性能,或者判断是否正确地设置了访问许可,可以使用 set passthru 命令。该命令使用户可以直接访问远程数据源,而不是借助联邦引擎。一旦设置了 passthru,用户就可以用合法的 ID 和密码登录到远程数据源上。有一点要小心:如果您希望下次还使用联邦引擎,那么应记得执行 SET SERVER RESET 命令将此选项关闭。还应注意的是,passthru 模式下的查询执行和使用本地客户机接口不同。DB2 II 增加了一些系统开销。
DBA 发挥作用
DB2 II 的精彩之处在于,它隐藏了执行跨平台连接和更新的复杂性。DB2 II 使开发人员不必编写重复、复杂且繁琐的例程,因而可以将注意力放在解决业务问题和加快推向市场上来。IBM 正在努力使这个软件更具自主性。但仍需要有人来对查询进行调优,以便提高其性能。在这方面,DBA 还有很多工作要做。
更多精彩
赞助商链接