DB2编程序技巧(五)
DB2 技巧 编程序
2023-06-13 09:13:53 时间
正在看的db2教程是:DB2编程序技巧(五)。1.16存储过程fence及unfence
fence的存储过程单独启用一个新的地址空间,而unfence的存储过程和调用它的进程使用同一个地址空间。
一般而言,fence的存储过程比较安全。
但有时一些特殊的要求,如要取调用者的pid,则fence的存储过程会取不到,而只有unfence的能取到。
1.17SP错误处理用法
如果在SP中调用其它的有返回值的,包括结果集、临时表和输出参数类型的SP,
DB2会自动发出一个SQLWarning。而在我们原来的处理中对于SQLWarning都
会插入到日志,这样子最后会出现多条SQLCODE=0的警告信息。
处理办法:
定义一个标志变量,比如DECLARE V_STATUS INTEGER DEFAULT 0,
在CALL SPNAME之后, SET V_STATUS = 1,
DECLARE CONTINUE HANDLER FOR SQLWARNING
BEGIN
IF V_STATUS <> 1 THEN
--警告处理,插入日志
SET V_STATUS = 0;
END IF;
END;
1.18import用法
db2 import from gh1.out of DEL messages err.txt insert into db2inst1.tb_dbf_match_ha
注意要加schma
1.19values的使用
如果有多个 set 语句给变量付值,最好使用values语句,改写为一句。这样可以提高效率。
但要注意,values不能将null值付给一个变量。
values(null) into out_return_code;
这个语句会报错的。
1.20给select 语句指定隔离级别
select * from tb_head_stock_balance with ur
1.21atomic及not atomic区别
atomic是将该部分程序块指定为一个整体,其中任何一个语句失败,则整个程序块都相当于没做,包括包含在atomic块内的已经执行成功的语句也相当于没做,有点类似于transaction。
2 DB2编程性能注意
2.1大数据的导表
应该是export后再load性能更好,因为load不写日志。
比select into 要好。
fence的存储过程单独启用一个新的地址空间,而unfence的存储过程和调用它的进程使用同一个地址空间。
一般而言,fence的存储过程比较安全。
但有时一些特殊的要求,如要取调用者的pid,则fence的存储过程会取不到,而只有unfence的能取到。
1.17SP错误处理用法
如果在SP中调用其它的有返回值的,包括结果集、临时表和输出参数类型的SP,
DB2会自动发出一个SQLWarning。而在我们原来的处理中对于SQLWarning都
会插入到日志,这样子最后会出现多条SQLCODE=0的警告信息。
处理办法:
定义一个标志变量,比如DECLARE V_STATUS INTEGER DEFAULT 0,
在CALL SPNAME之后, SET V_STATUS = 1,
DECLARE CONTINUE HANDLER FOR SQLWARNING
BEGIN
IF V_STATUS <> 1 THEN
--警告处理,插入日志
SET V_STATUS = 0;
END IF;
END;
1.18import用法
db2 import from gh1.out of DEL messages err.txt insert into db2inst1.tb_dbf_match_ha
注意要加schma
1.19values的使用
如果有多个 set 语句给变量付值,最好使用values语句,改写为一句。这样可以提高效率。
但要注意,values不能将null值付给一个变量。
values(null) into out_return_code;
这个语句会报错的。
1.20给select 语句指定隔离级别
select * from tb_head_stock_balance with ur
1.21atomic及not atomic区别
atomic是将该部分程序块指定为一个整体,其中任何一个语句失败,则整个程序块都相当于没做,包括包含在atomic块内的已经执行成功的语句也相当于没做,有点类似于transaction。
2 DB2编程性能注意
2.1大数据的导表
应该是export后再load性能更好,因为load不写日志。
比select into 要好。
相关文章
- 行运行在Linux系统中使用DB2命令行操作(linux下db2命令)
- 比较Oracle与DB2的优势和劣势(oracledb2)
- Oracle迁移至DB2:简化您的IT运维(oracle迁移到db2)
- Linux启动DB2:步骤指南(linux启动db2)
- Linux下DB2系统快速启动指南(linux启动db2)
- Linux下连接DB2的技巧(Linux连接DB2)
- Linux环境下如何启动DB2数据库(linuxdb2启动)
- DB2连接Oracle乱码解决方案(db2连oracle乱码)
- 将DB2数据库迁移至Oracle数据库的实践(db2转为oracle)
- DB2如何连接访问Oracle数据库(db2 访问oracle)
- DB2移植到Oracle技术挑战与极限(db2移植到oracle)
- DB2切换到Oracle一次实现升级复制(db2的复制oracle)
- 从DB2到Oracle一次数据库改变(db2更换成oracle)
- DB2迁移Oracle实时超越界限(db2实时转oracle)
- 比较分析DB2与Oracle的优劣势(db2和oracle优点)
- DB2走上正轨使用Oracle实现稳定依赖(db2依赖oracle)
- 比较DB2与Oracle的锁定机制(db2与oracle锁)
- 突破界限DB2转换为Oracle的平台实现(db2oracle平台)
- 如何将DB2数据库转移至Oracle(db2怎么转oracle)
- DB2编程序技巧(九)
- DB2编程序技巧(一)
- 在DB2中提高INSERT性能的技巧(1)
- 用shell抽取,更新db2的数据