請教提高上百萬行資料insert速度的「經典」方法

2021-04-17 16:09:16 字數 816 閱讀 7178

有兩個結構相同的表table1,table2

將table1插入到table2中:

現在採用兩種方法:

1、指定回滾段,回滾段足夠大

set transaction use rollback segment rbs1;

insert into table1 nologging

select * from table2;

commit;

2、採用定義cursor,每5000或10000條記錄提交一次

declare

cursor cur_select is

select t1,t2,t3..... from tabl1;

v_id number;

v_t  table1%rowtype;

begin

open cur_select;

loop

exit when cur_select%notfound;

fetch cur_select into v_t.t1,v_t.t2,v_t.t3..... ;

insert into table2

(t1,t2,t3......)

values

(v_t.t1,v_t.t2,v_t.t3..... );

v_id := v_id + 1;

if v_id = 10000 then

commit;

v_id := 0;

end if;

end loop;

commit;  

end;

提高上百萬行資料insert速度的「經典」方法

提高上百萬行資料insert速度的 經典 方法 有兩個結構相同的表table1,table2 將table1插入到table2中 現在採用兩種方法 1 指定回滾段,回滾段足夠大 set transaction use rollback segment rbs1 insert into table1 ...

提高上百萬行資料insert速度的「經典」方法

提高上百萬行資料insert速度的 經典 方法 有兩個結構相同的表table1,table2 將table1插入到table2中 現在採用兩種方法 1 指定回滾段,回滾段足夠大 set transaction use rollback segment rbs1 insert into table1 ...

幾十上百萬行,如何快速查詢出表資料

答 用分頁儲存過程 函式名稱 getrecordfrompage 函式功能 獲取指定頁的資料 引數說明 tblname 包含資料的表名 fldname 關鍵欄位名 pagesize 每頁記錄數 pageindex 要獲取的頁碼 ordertype 排序型別,0 公升序,1 降序 strwhere 查...