WEB开发网
开发学院数据库DB2 减少与 DB2 for z/OS 的会话:第 2 部分(更多经过... 阅读

减少与 DB2 for z/OS 的会话:第 2 部分(更多经过检验的基础知识和一些新的编程技巧)

 2010-06-16 00:00:00 来源:WEB开发网   
核心提示:在之前的专栏中,我提到过不必要的 SQL,减少与 DB2 for z/OS 的会话:第 2 部分(更多经过检验的基础知识和一些新的编程技巧),目标是让程序员停下来想想每条语句,确定在某个特定的时间它是完全必要的,我们可以选择只在目标列值与前一个行中的值不同时进行验证;即在控件中断时验证,将小型引用表预先加载到程序内存性

在之前的专栏中,我提到过不必要的 SQL。目标是让程序员停下来想想每条语句,确定在某个特定的时间它是完全必要的。我展示了两类 SQL 示例:一类是可以完全去掉的 SQL;另一类 SQL 可以延迟到之后某个合适的时间,然后只在仍然必要的时候执行。

在本期的专栏中,我将继续提供一些 SQL 示例,包括执行太过频繁以及可以使用新的、更好的 SQL 替换的 SQL 示例。现在,欢迎进入减少与 IBM DB2 会话的第二部分(共三部分)。

经过验证的技术

控件中断逻辑

编写程序,尤其是批量程序时我们应该遵守的性能基本规则之一是,在可能时使用控件中断逻辑。这不是一个专门的 DB2 概念 —— 它只是一个好的编程实践。查看控件中断或值的更改,可以减少与 DB2 的连接,因为您只有在担心它与上次查询的值不同时才在表格中查询值。

优化控件中断逻辑要求以特定的顺序输入数据;例如,ITEM 位于 STORE 中,STORE 位于 REGION 中。但是,即使输入数据以特定的顺序存储,也可以使用中断逻辑,确保 REGION 需要的任何 SQL 都只对每个 REGION 执行一次;对于 STORE,只对该 REGION 的每个 STORE 执行一次;对于 ITEM,只对该 STORE 中的每个 ITEM 执行一次。

顺便提一下,DB2 执行的引用完整性不使用控件中断逻辑。对每个 INSERT、UPDATE、DELETE 和 MERGE 检查外键值,即使目标列值与之前执行了 INSERT(等操作)的行中的值相同。使用程序执行的引用完整性时,我们可以选择只在目标列值与前一个行中的值不同时进行验证;即在控件中断时验证。

将小型引用表预先加载到程序内存

性能优化的另一个基本规则是将小型引用表预先加载到工作存储表(当这样做恰当时),以避免不必要地多次连接 DB2。

1 2 3  下一页

Tags:减少 DB for

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