db2 存储过程对表进行大的insert,如何不记日志

来源:百度知道 编辑:UC知道 时间:2024/05/18 21:44:04
我在unix系统里面写了shell调用db2的存储过程,在存储过程中要将一个临时表的数据insert到一个物理表(2千万的纪录),结果日志报满!
建表语句:
create table t1
(
a1 char(12),
a2 char(4),
rq date
)
NOT LOGGED INITIALLY
IN ODSUSRSPACE32K;

shell不管是
db2 "alter table t1 activate not logged initially"
time db2 "call PROC_LJB_t1(?)"
还是只有
time db2 "call PROC_LJB_t1(?)"
都报日志满
SQL0964C The transaction log for the database is full. SQLSTATE=57011

请教高手有什么好的办法不?
这里先给100分,问题解决了还有加分!
希望高手能够对涉及到的db2给以详尽的解答,我是新手!
谢谢!

使用alter table 加上 ACTIVATE NOT LOGGED INITIALLY 选项,可以关闭日志记录,具体语法可以去看alter table命令的帮助。该命令只对当前事务有效,事务结束后日志记录会自动恢复