减少与 DB2 for z/OS 的会话:第 3 部分:以不同的思路思考普通事务
2010-09-16 00:00:00 来源:WEB开发网向程序返回一个行
在 500 个合格的行中,只有 25 个 CUSTNOs 在工作存储列表中(在从 DB2 返回后,在程序中拒绝行的条件称为 “Stage 3 谓词” —— 并且 Stage 3 谓词比 Stage 2 谓词更糟糕)
对每个完全合格行,再次对 DB2 执行 CONNECT,此次进行 DELETE 操作(25 个连接)
为多达 528 CONNECTs 重复 24 次,并且对每个索引和表进行太多的 GET PAGEs。
那么如何在这种条件下减少对话的数量?我建议做 4 方面改善(您可能还记得在 上一专栏的第 2 步 中的建议):
如果可行,在索引中增加 STATUS,来使得有效性只适用索引
改变 CURSOR 来使 ROWSET POSITIONING 每次读取多行
利用 SELECT FROM DELETE 来查看行
通过将数字 INSERT 到 CREATED GLOBAL TEMPORARY TABLE(例如,CTT_CUST)并通过在 SQL 中使用临时表,去掉 STAGE 3 取消资格(程序检查 CUSTNO)
Declare Cursor csr-select-and-delete-old-rows
With rowset positioning
For
Select ponbr, custno, trandate, process-date
From final_table
(Delete from bigtable
Where trandate < current date - 3 months
And status = :hv-inactive
And custno in (select custno from ctt_cust)
Open csr-select-and-delete-old-rows
(一个 CONNECT)
Fetch rowset from final_table
For 100 rows into
:hvponbr-array, :hvcustno-array, :hvtrandate-array, :hvprocess-date-array
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››Form Reset Function
- ››db2 命令选项解释
- ››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 基础: 表空间和缓冲池
更多精彩
赞助商链接