oracle中對大資料量字段進行update操作

2021-12-30 10:43:08 字數 714 閱讀 1345

oracle中對大資料量字段進行update操作

最近對乙個七十多萬條資料的表進行update操作,剛開始直接使用update語句,如下:

1  www.2cto.com  

update content set pic_bak=pic;

發現對於一兩萬條資料的表非常快,但是對於幾十萬條的表來說就非常慢了,不推薦。因此在網上查閱了一下,採用了declare方法,具體實現如下: 01

declare     宣告變數的關鍵字

02v_num number;  定義number型別的變數v_num

03begin  

04v_num :=11521488;    給宣告的變數賦值(:=),不支援宣告時就賦值

05while v_num < 17163145 loop   迴圈體

06update table_name set tmp=content  sql語句

07where id>=v_num         id是我的主鍵(sql中使用索引是更快)

08  www.2cto.com  

and id

09commit;          每執行3000行一提交,這樣確保不會出現錯誤時回滾

10v_num := v_num+3000;  

11end loop;

12end;

通過這種方法,發現執行七十多萬條資料執行時間為3分左右,還可以接受。

Oracle大資料量遷移

prompt 生成歷史表,使用nologging create table his test nologging as select from test prompt 檢驗新舊表的資料量是否一致 select count 1 from test select count 1 from his tes...

MSSQL大資料量增加字段耗時對比

單個資料表記錄數為1億4千萬條.一 測試同時增加兩個允許為空的字段.alter table dbo xrecord add stype int,ctype int go總共耗時 877毫秒 更新資料值 update dbo xrecord set stype 0,ctype 0 總共耗時 1小時37...

大資料量演算法

給40億個不重複的unsigned int的整數,沒排過序的,然後再給乙個數,如何快速判斷這個數是否在那40億個數當中 位圖思想解法 include stdio.h include stdlib.h include memory.h define max num 4294967295 int mai...