减少与 DB2 for z/OS 的会话:第 2 部分(更多经过检验的基础知识和一些新的编程技巧)
2010-06-16 00:00:00 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨绘い鎺嬪灪閵囧嫰骞囬姣挎捇鏌熸笟鍨妞ゎ偅绮撳畷鍗炍旈埀顒勭嵁婵犲嫮纾介柛灞捐壘閳ь剛鎳撻~婵嬪Ω閳轰胶鐤呯紓浣割儐椤戞瑩宕ョ€n喗鐓曟い鎰靛亝缁舵氨绱撻崘鈺傜婵﹤顭峰畷鎺戔枎閹搭厽袦婵犵數濮崑鎾绘⒑椤掆偓缁夌敻骞嗛悙鍝勭婵烇綆鍓欐俊鑲╃磼閹邦収娈滈柡灞糕偓鎰佸悑閹肩补鈧尙鏁栧┑鐐村灦閹稿摜绮旈悽绋课﹂柛鏇ㄥ灠閸愨偓濡炪倖鍔﹀鈧繛宀婁邯濮婅櫣绱掑Ο璇茶敿闂佺ǹ娴烽弫璇差嚕婵犳碍鏅插璺猴工瀹撳棝姊虹紒妯哄缂佷焦鎸冲畷鎴﹀箻鐠囧弶宓嶅銈嗘尰缁嬫垶绂嶉悙顒佸弿婵☆垳鍘ф禍楣冩倵濮樼偓瀚�

一个不那么和蔼的人曾经问我:“哪种破产品会将值加载到工作存储库以避免连接到该产品?”我想了一会后回答:“那种能够认识到程序员有选择且有脑子,并理解避免不必要的调用、连接和获取页面是一个好主意的产品。”由于 DB2 很快且有缓冲池,可以减少实际的 I/O 并不意味着要连接 DB2 100 万次来读取 10 行的表格,与此相比,连接 DB2 一次就将 10 行读取到工作存储表,然后寻址程序内存 100 万次要聪明的多。
减少重复执行嵌套选择的次数
考虑以下 SQL:
Select col1, col2, col3
From big_table where item = :hv-item-just-read
And big_table.deptno in (select deptno from little_dept-table
Where division = Eastern)
对于输入序列文件的每个选项,程序逻辑需要在一个大表格中进行查询,以获取 col1、col2 和 col3 的相关值。正如上文所述,希望输入的数据集按照项目编号进行排序,然后查看程序以了解该项目编号是否与查询完成前的编号有所不同。
但让我们更深入的查看 SQL。嵌套选择在 Eastern 分区创建一个部门列表,然后确保目标部门位于该列表中。我保证不需要太多精力就可以立即创建 “Eastern 分区的部门” 列表,然后可以执行查询,无需连接到 DB2。例如,我们可以使用 V8 行集定位指针连接 DB2 并获取列表;然后可以将 SQL 更改为硬编码列表,可以从我们的数组构建:
Declare CursorDept with rowset positioning for
Select deptno from little_dept-table
Where division = Eastern)
Fetch next rowset from CursorDept
For 20 rows
Into :hvarray-deptno
(code to ensure that +100 was reached)
Select col1, col2, col3
From big_table where item = :hv-item-just-read
And big_table.deptno in (:hvdept1, :hvdept2, :hvdept3....:hvdept20
- ››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 基础: 表空间和缓冲池
更多精彩
赞助商链接