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...