先创建一个大的回滚段 CREATE ROLLBACK SEGMENT rbs01 TABLESPACE rbs STORAGE ( INITIAL 5m NEXT 5m MINEXTENTS 10 MAXEXTENTS 100 OPTIMAL 50M );将该rollback segment online: alter rollback segment rbs01 online;要使该rollback segment 数据库启动时能够online,在初始化文件中加入: rollback_segments=(rbs01)然后更改你的qk: create or replace procedure qk as begin set SET TRANSACTION USE ROLLBACK SEGMENT rbs01; --指定使用大的回滚段 --全是删除数据的操作,数据表很多30多个 delete from sc_bjlld; ... ... ... end qk;
create or replace procedure qk as begin SET TRANSACTION USE ROLLBACK SEGMENT rbs01; --指定使用大的回滚段 --全是删除数据的操作,数据表很多30多个 delete from sc_bjlld; ... ... ... end qk;
create or replace procedure qk as begin execute immediate 'truncate table sc_bjlld'; execute immediate 'truncate table table2'; ... ... ... end qk; 另外如果你是要清空表里的所有记录,你也可以这样(使用动态SQL):(适用8.10及以上) create or replace procedure qk as begin SET TRANSACTION USE ROLLBACK SEGMENT rbs01; --指定使用大的回滚段 --全是删除数据的操作,数据表很多30多个 delete from sc_bjlld; ... ... ...
commit; --最后提交 end qk; 这样做可以减少回滚段的压力
呵呵。谢谢各位,尤其是zzok1()。 我在过程第一句中增加了 SET TRANSACTION USE ROLLBACK SEGMENT aNewRollback; 其中aNewRollback的初始大小为8M,增量也为8M 结果令人满意。
所以执行删除,加上一个 commit; 就可以了.(上面的问题就不会发生)
CREATE ROLLBACK SEGMENT rbs01
TABLESPACE rbs
STORAGE (
INITIAL 5m
NEXT 5m
MINEXTENTS 10
MAXEXTENTS 100
OPTIMAL 50M );将该rollback segment online:
alter rollback segment rbs01 online;要使该rollback segment 数据库启动时能够online,在初始化文件中加入:
rollback_segments=(rbs01)然后更改你的qk:
create or replace procedure qk
as
begin
set SET TRANSACTION USE ROLLBACK SEGMENT rbs01; --指定使用大的回滚段 --全是删除数据的操作,数据表很多30多个
delete from sc_bjlld;
...
...
...
end qk;
as
begin
SET TRANSACTION USE ROLLBACK SEGMENT rbs01; --指定使用大的回滚段 --全是删除数据的操作,数据表很多30多个
delete from sc_bjlld;
...
...
...
end qk;
as
begin
execute immediate 'truncate table sc_bjlld';
execute immediate 'truncate table table2';
...
...
...
end qk;
另外如果你是要清空表里的所有记录,你也可以这样(使用动态SQL):(适用8.10及以上)
create or replace procedure qk
as
begin
SET TRANSACTION USE ROLLBACK SEGMENT rbs01; --指定使用大的回滚段 --全是删除数据的操作,数据表很多30多个
delete from sc_bjlld;
...
...
...
commit; --最后提交
end qk;
这样做可以减少回滚段的压力
我在过程第一句中增加了
SET TRANSACTION USE ROLLBACK SEGMENT aNewRollback;
其中aNewRollback的初始大小为8M,增量也为8M
结果令人满意。