天天看點

SQL2008使用CTE遞歸查詢批量插入500萬資料

一直都使用一般的批量循環插入方法 ,可這效率也太慢了,插入500萬條資料執行所需的時間遠遠超過10分鐘。于是度娘了一下 發現可以使用CTE進行遞歸循環插入

以下是親測的資料:

1、建立表:

2、使用一般批量循環處理

SQL2008使用CTE遞歸查詢批量插入500萬資料
SQL2008使用CTE遞歸查詢批量插入500萬資料

結果:(10分鐘已過 還沒添加完畢...)

SQL2008使用CTE遞歸查詢批量插入500萬資料

3、使用CTE方法

SQL2008使用CTE遞歸查詢批量插入500萬資料
SQL2008使用CTE遞歸查詢批量插入500萬資料

結果:(185秒 約3分鐘左右)

SQL2008使用CTE遞歸查詢批量插入500萬資料

網上也查了一下 說:CTE其實是面向對象的,運作的基礎是CLR。看來遞歸 CTE 可以極大地簡化在 SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 語句中運作遞歸查詢所需的代碼。

小記一下 回去再研究研究 下班!

繼續閱讀