清理大批量資料例子

2022-04-01 03:17:20 字數 1330 閱讀 3825

最近有乙個新任務,在乙個表裡一下更新700w條資料。由於這個表業務正在使用,而且sql server做了完整日誌記錄。

修改了一下更新sql,分批更新,每次60w。  

declare

@num

intset

@num=0

while

@num

<

7000000

begin

update

t set

usecustomersysno

=c.sysno,validtimefrom='

2011-09-07

',rowmodifydate

=getdate

(),validtimeto='

2011-09-12 23:59:59.000

'from

(select

validtimeto,rowmodifydate, validtimefrom, sysno,usecustomersysno,row_number() 

over

(order

bysysno) rn

from

dbo.coupon 

where

batchno

=623

) tinner

join

(select

sysno,row_number() 

over

(order

bysysno) rn 

from

customer 

where

registertime

<

'2011-9-6

') c 

onc.rn

=t.rn 

andt.rn

>=

@num

andt.rn

<

@num

+600000

set@num

=@num

+600000

end更新過程中,的確存在堵塞前台更新表的情況,但由於這個時間比較快,堵塞也就不多!

刪除歷史資料:

while1=

1begin

delete

top(

500000

)   

from

product_dailyclick 

where

clickdate

<

'2011-01-01'if

@@rowcount

<

500000

break

;end

mysql大批量更新資料

大批量的更新資料如果再使用傳統的 update 方法一條一條的更新,效率是很慢的,而且效能差,也很容易造成阻塞。1 使用mysql 自有的語句構建批量更新 update tble set price case id when 16 then 7.6 when 19 then 8.86 when 20...

solr大批量資料匯出

需求 有100個core,每個core4000w資料量。把所有資料匯出來。方案1.直接對每個core通過httpsolrclient先取出總條數,然後通過每次分頁讀n行,直到讀完,這個方案肯定不行,因為越到後面,讀取速度越慢,不用想都要很長時間。方案2.深度分頁 通過游標,可以使分頁速度很快。sol...

MySQL大批量插入資料

1.對於myisam型別的表,可以通過以下方式快速的匯入大量的資料。alter table tblname disable keys loading the data alter table tblname enable keys 這兩個命令用來開啟或者關閉myisam表非唯一索引的更新。在匯入大量...