DB2 for i5/OS上的SQL性能优化目标评测
2009-12-12 14:58:02 来源:WEB开发网本文的目的不是对优化目标的设置进行深入的讨论,但是对此作一个简要的描述可能对某些读者有用。通过将优化目标指定为 FIRSTIO,应用程序可以迫使查询更快地返回第一页结果的输出。若优化目标为 ALLIO,则可以以最短的时间完成整个查询。为了直观地理解这些选项,可以将 FIRSTIO 选项比作自行车,而将 ALLIO 选项比作飞机。如果是去很近的地方,那么自行车也许是最好的选择,因为基本上没有启动成本。但是,如果要去比较远的地方,虽然启动成本较高,飞机仍然是更好的解决方案。对距离的理解,或者说对查询的输出行为的理解,对于为不同查询选择最有效的选项是至关重要的。
本文的目的之一是执行一些查询并测试两种优化设置(FIRSTIO 和 ALLIO)的性能,从而来证明 CLI 环境中新设置的实际实现。可以肯定的是,iSeries Navigator 的 SQL Performance Monitor 特性对于测量查询的启动时间、取数据时间和总响应时间以及优化器的实现是一个有用的工具。我编写了一个 CLI 程序,用于以任意一种优化目标设置来运行 SQL 查询。程序中为新的连接属性提供了 CLI 常量、SQL_FIRST_IO 和 SQL_ALL_IO。
清单 1. 控制优化目标的 CLI 示例代码
attr = SQL_FIRST_IO;
rtnc = SQLSetConnectAttr(hdbc,SQL_ATTR_QUERY_OPTIMIZE_GOAL,&attr,0);
iSeries Navigator 的 SQL 性能工具
可以通过在 图 1 所示的下拉菜单中选择 Monitor > Start SQL Performance Monitor 任务,从 iSeries Navigator Run SQL scripts 界面中启动 SQL Performance Monitor。然后,使用 CL 前缀调用包含 CLI 调用的 C 程序,以发出一个 i5/OS CALL 命令。
图 1. Run SQL Scripts 界面
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››Form Reset Function
- ››OSC“回到顶部”代码
- ››db2 命令选项解释
- ››OSCHINA 使用 Github 登录的源码
- ››FOREACH 宏之GCC实现
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
更多精彩
赞助商链接