DB2 for i5/OS上的SQL性能优化目标评测
2009-12-12 14:58:02 来源:WEB开发网简介
DB2 for i5/OS on V5R4 提供了一些新方法来通过一些流行的动态 SQL 接口提高数据库查询的性能。SQL Call Level Interface (CLI) 为用户提供了一个新的连接属性,用于调优数据库查询使用的优化目标。用于 IBM® Developer Kit for Java 的 Java Database Connectivity (JDBC) 接口(也称 Native JDBC)和 Toolbox 也提供了一个新的可控制查询优化目标的连接属性。那些熟悉 System i 和数据库查询性能分析和调优的人就会理解控制优化目标是优化性能的关键步骤。从 V5R4 开始,这些动态接口也可利用 System i 其他地方出现的那种直接程序性控制。本文主要讨论用于设置优化目标的新的 CLI 属性。
优化目标接口
在过去,执行 SQL 语句的应用程序可以选择通过几种机制来调优优化目标:
Query Options File (QAQQINI) -- 可以通过将 OPTIMIZATION_GOAL 选项指定为以下几个值之一,来控制整个系统或一个特定连接(任务)的优化目标。由于缺省的优化目标值取决于使用的 SQL 接口,因此该选项没有缺省的设置。对于用于每种接口的缺省值,请参考表 1。
*ALLIO
*FIRSTIO
表 1. 每种 SQL 接口的缺省优化目标
接口 | 缺省优化目标 |
CLI | ALLIO |
Native JDBC 驱动程序 | ALLIO |
Toolbox JDBC 驱动程序 | FIRSTIO - 如果使用扩展的动态包,则缺省值为 All I/O |
iSeries access for Windows Open Database Connectivity (ODBC)、Object Linking and Embedding (OLE) DB 和 .NET 客户机 | FIRSTIO - 如果使用扩展的动态包,则缺省值为 All I/O |
嵌入式静态 SQL | FIRSTIO |
嵌入式动态 SQL | ALLIO |
QSQPRCED API | FIRSTIO |
STRSQL 实用程序 | FIRSTIO |
RUNSQLSTM 实用程序 | ALLIO |
OPTIMIZE FOR N ROWS 子句 -- 通过使用 OPTIMIZE FOR N ROWS 子句,可以直接将优化构建到 SQL 请求中。若 N 值较小,则可能导致查询优化器使用 FIRSTIO 目标,反之,如果该值较大(例如 ALL ROWS),则会导致查询优化器使用 ALLIO 目标。
CLI SQLSetConnectAttr() API 和 SQL_ATTR_QUERY_OPTIMIZE_GOAL 属性
SQL_ALL_IO (缺省)
SQL_FIRST_IO
Toolbox JDBC 连接属性 "query optimize goal" 和 DataSource 方法 setQueryOptimizeGoal()
0 = 使用缺省目标 *FIRSTIO,但是如果使用扩展的动态包,则使用目标 *ALLIO
1 = *FIRSTIO
2 = *ALLIO
Native JDBC 连接属性 "query optimize goal" 和 DataSource 方法 setQueryOptimizeGoal()
0 = 使用缺省目标 *ALLIO
1 = *FIRSTIO
2 = *ALLIO
新的 CLI 和 JDBC 接口
新的 CLI 和 JDBC 选项提供了一种更程序性、在某些情况下也是更细粒度的方法来调优优化目标。由于新的 CLI 连接属性的作用范围是整个连接,因此它将影响在设置该属性之后执行的所有 SQL 查询。这对于以服务器模式运行很多线程的环境很有利,因为这种环境必要时可以在多个连接上使用不同的优化目标。此外,这也使得设置优化目标更加有助于动态调优策略。注意,这些 JDBC 和 CLI 接口只对到 i5/OS V5R4 或更高版本上运行的 System i 服务器的连接有影响。
- ››FOREACH 宏之GCC实现
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
- ››DB2 pureScale 实战
- ››DB2 存储过程中如何使用 Optimization Profile
- ››DB2 pureScale 新特性 -- Member Restart
- ››DB2 Express-C 9.7.2 新增特性
- ››DB2 9.7 新特性 - 内联 LOB 的使用
赞助商链接