WEB开发网
开发学院数据库DB2 DB2存储过程开发最佳实践 阅读

DB2存储过程开发最佳实践

 2007-09-04 16:22:47 来源:WEB开发网   
核心提示: 上面定制的异常处理器负责对参数hSqlcode,hSqlstate和poGenStatus初始化,DB2存储过程开发最佳实践(9),当我们在程序中需要对它们初始化时,我们只需要调用SIGNAL sqlreset就可以了,临时表被隐式卸下,对临时表的定义不会在SYSCAT.TABLES中出现

上面定制的异常处理器负责对参数hSqlcode,hSqlstate和poGenStatus初始化。当我们在程序中需要对它们初始化时,我们只需要调用SIGNAL sqlreset就可以了。

最佳实践 5:合理使用临时表

我们在储存过程开发中经常使用临时表。合理的使用临时表可以简化程序的编写,提供执行效率,然而滥用临时表同样也会使得程序运行效率降低。

临时表一般在如下情况下使用:

1. 临时表用于存储程序运行中的临时数据。例如,如果在一个程序中第一条查询语句执行的结果会被后续的查询语句用到,那么我们可以把第一次查询的结果存储在一个临时表中供后续查询语句使用,而不是在后续查询语句中重新查询一次。如果第一条查询语句非常复杂和耗时,那么上面的策略是非常有效的。

2. 临时表可以用于存储在一个程序中需要返回多次的结果集。例如,程序中有一个很耗资源的多表查询,同时,该查询在程序中需要执行多次,那么就可以把第一次查询的结果集存储在临时保中,后续的查询只需要查临时表就可以了。

3. 临时表也可以用于让SQL访问非关系型数据库。例如,可以编写程序把非关系型数据库中的数据插入到一个全局临时表中,那么我们就可以对其数据进行查询。

我们可使用 DECLARE GLOBAL TEMPORARY TABLE 语句来定义临时表。DB2的临时表是基于会话的,且在会话之间是隔离的。当会话结束时,临时表的数据被删除,临时表被隐式卸下。对临时表的定义不会在SYSCAT.TABLES中出现 下面是定义临时表的一个示例:

清单9:定义临时表

DECLARE GLOBAL TEMPORARY TABLE gbl_temp
LIKE person
ON COMMIT DELETE ROWS
NOT LOGGED
IN usr_tbsp

此语句创建一个名为 gbl_temp 的用户临时表。定义此用户临时表 所使用的列的名称和说明与 person 的列的名称和说明完全相同。

上一页  4 5 6 7 8 9 10  下一页

Tags:DB 存储 过程

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