DB2 9.5 SQL Procedure Developer 认证考试 735 准备,第6部分:DB2开发工具
2010-02-18 15:01:07 来源:WEB开发网步骤 2:设置参数以指示查询编译器收集解释信息和填充 explain 表。
对于 SQL语句,您可以使用:db2 set current explain mode explain。这将使 DB2 进入解释模式,并且将收集所有后续查询中的解析数据而无需实际运行这些查询。在完成步骤 4 中的访问计划时记得要运行db2 set current explain mode no,这样所有查询都将再次运行。
对于 SQL PL过程,请使用以下方法之一:
(推荐)在DB2 会话级别调用SYSPROC.SET_ROUTINE_OPTS 以设置解释指令,以便控制仅在当前会话中需要解释的过程。如果要在步骤 3 中运行的文件的顶部包含命令 CALL SYSPROC.SET_ROUTINE_OPTS('EXPLAIN ALL');,则可以跳过此步骤
在实例级别上设置 DB2_SQLROUTINE_PREPOPTS,以便解释创建的每个过程。记住:在实例级别上设置此选项要求重新启动数据库,并且它将影响所有用户和语句。使用: $ db2set DB2_SQLROUTINE_PREPOPTS="EXPLAIN ALL EXPLSNAP ALL"
$ db2stop
$ db2start
步骤 3:运行所需的工作负载。您可以运行独立的语句,也可以创建并运行含有多个SQL/XPATH语句或 SQL PL 例程的文件。例如,要运行名为myscript.db2的示例文件,请输入 db2 -td@ -vf myscript.db2。
图 23. myscript.db2 文件的内容
步骤 4:使用db2expln或db2exfmt 工具提取 Explain Plan 以将 explain 表的内容的格式设置为:db2exfmt -d sample -g TIC -w -1 -n % -s % -# 0 -o exfmt_output.out。
图 24 显示了步骤 2 到步骤 4的汇总,显示了在CLP 窗口中查看使用DB2EXFMT执行此过程的结果。
图 24. 示例 1的 myscript.db2 文件
过程 NUMBER_OF_ORDERS的访问计划的详细信息位于 exfmt_output.out 文件中。通过使用这些信息,您可以看到正在使用的索引有哪些以及关于此查询的其他性能注意事项。
图 25 显示了使用DB2EXPLN 时得到的类似结果。例如,您在前几个步骤中创建的过程是使用DB2EXPLN 从命令行直接调用的。使用以下命令在终端生成并显示输出:db2expln -d sample -statement "call number_of_orders ('Shipped', current date, ?)" –terminal。
图 25. DB2EXPLN语句将调用过程
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接