WEB开发网
开发学院数据库DB2 DB2 9.5 SQL Procedure Developer 认证考试 735 准... 阅读

DB2 9.5 SQL Procedure Developer 认证考试 735 准备,第6部分:DB2开发工具

 2010-02-18 15:01:07 来源:WEB开发网   
核心提示:限制工作台中的 Visual Explain 支持以下数据服务器:DB2 Version 9.5.1 for Linux, UNIX, and WindowsDB2 UDB for z/OS™ Version 8 (New Function Mode)DB2 Version 9.1 for z/OS如果需要

限制

工作台中的 Visual Explain 支持以下数据服务器:

DB2 Version 9.5.1 for Linux, UNIX, and Windows

DB2 UDB for z/OS™ Version 8 (New Function Mode)

DB2 Version 9.1 for z/OS

如果需要为DB2 Version 8.2 for Linux, UNIX, and Windows或DB2 UDB for z/OS Version 8(兼容模式)创建访问计划图,则必须安装附加软件。在需要创建访问计划图时,工作台将启动该软件。

对于 DB2 Version 8.2 for Linux, UNIX, and Windows,您必须安装 DB2 for Linux, UNIX, and Windows的客户端。

对于 DB2 UDB for z/OS Version 8 (Compatibility Mode),您必须安装 Visual Explain for DB2 for z/OS。

通过DB2命令行处理过程

DB2 Command Line Processor (CLP) 是自带的一种与 DB2 进行交互的方法。使用各种 GUI 工具完成的任务都可以使用CLP 完成。使用CLP,您可以配置、调优、获得帮助、运行SQL查询、创建(构建)、运行存储过程或获得各个SQLCODE的信息。

要通过DB2命令行构建存储过程,请编辑包含此过程的文件以添加DB2可以识别的终止符。SQL过程中的每条语句都需要一个终止符。默认值为分号(;)。您需要选择一个将在脚本中使用的备选终止符,以便 CLP 知道您的过程终止的位置。最常用的是 “at” 符号(@)和感叹号(!)。

清单 1 显示了一个包含简单存储过程的脚本,在结尾处使用“@” 终止符。

清单 1. 带有终止符的存储过程脚本CREATE PROCEDURE NUMBER_OF_ORDERS
     (in_status varchar(10), in_date DATE, out num_of_order int)
P1: BEGIN

   DECLARE v_number INTEGER DEFAULT 0;

 SELECT count(poid)
  INTO v_number
  FROM PURCHASEORDEr
    WHERE ucase(status) = ucase(in_status)
   AND orderdate < in_date;

   SET num_of_order = v_number;

END P1 @

此脚本被保存为myscript.db2 文件。

要通过DB2 CLP 构建过程 number_of_orders,请运行以下命令:db2 –td@ -vf myscript.db2。此 CLP命令的一般语法是 db2 -td <terminating-character> -vf <CLP-script-name>

注:-td 选项表示 CLP 终止符默认值将被重置为终止字符。-vf 表示将使用CLP的可选的 verbose(-v)选项,这将导致在脚本运行时将显示脚本中的每条 SQL语句或命令,以及执行脚本得到的所有输出。-f 选项表示执行命令的目标是文件。

现在通过CLP执行此过程。您可以使用CALL语句通过命令行调用存储过程。存储过程应当已在(先前构建的)DB2目录中,并且应当建立了与数据库的连接。CALL语句的语法为db2 call procname (parm1, ….)。

您还需要提供每个IN 及 INOUT 参数的值和每个OUT 参数的 ? 占位符。注:CALL语句中的参数数据类型应当与 CREATE PROCEDURE语句中的参数数据类型兼容。

现在使用db2 call number_of_orders(‘Shipped’,current date, ?) 调用number_of_orders过程。

图 15. 使用CALL语句调用number_of_orders过程

使用SQL Explain Facility和DB2 Access Plan

SQL Explain Facility 属于 SQL 编译器,您可以使用它捕捉关于编译静态或动态 SQL语句的环境的信息。捕捉这些信息可以评估关于 SQL语句的结构及性能的各项因素,包括成本信息、处理查询所需的操作的顺序、断言和选择性评估,以及在解释 SQL语句时引用的所有对象的统计信息。

这些信息将帮助您了解:

为查询选择何种执行计划

可以执行哪些更改以优化 SQL代码

是否需要更改或添加数据库结构以实现更好的性能

是否应当重新绑定应用程序

在DB2 引擎处理查询时,DB2 优化器将生成若干个访问所请求数据的备选计划。优化器将评估每个计划的执行成本并选择成本最低的计划来执行。此计划被称为访问计划。

DB2 Query Access Plan 是开发过程的重要方面,因为编写的 SQL代码的效率总是十分重要。无论您是在开发新代码、在现有的数据库应用程序中实现更改、升级到新版 DB2,还是进行一般性的性能优化,使用访问计划是确保SQL代码拥有足够性能的最佳方式。

DB2提供了多个可用于生成和检索这些重要信息的工具(既有可视化工具又有命令行工具)。最常用的工具包括:

DB2 Control Center和Command Editor 中的 Visual Explain

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:DB SQL Procedure

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接