2012-05-17 100 views
1

我創建了一個存儲過程。我用大量的數據(大約1L行)獲取遊標。 之後,我會調用另一個過程來完成與所需數據相關的所有計算。 我創建臨時表並嘗試在其中插入此計算的數據。但它需要大約9.5分鐘的時間太長 。 我想知道如何通過使用最少的「插入」查詢來插入批量數據,因爲1L插入查詢導致最差的性能。誰能幫我??如何一次將批量數據插入數據庫?

+1

對不起。什麼是1L? –

+0

請顯示您的代碼。 – eggyal

+0

@Jack 1L = 1 Lakh = 100,000 http://en.wikipedia.org/wiki/Lakh –

回答

6

您可以使用下面的SQL語句進行批量插入:

INSERT INTO TABLE_A (A, B, C, D) VALUES 
(1,1,1,1), 
(2,2,2,2), 
(3,3,3,3), 
(4,4,4,4); 
+1

現場演示[sqlfiddle](http://www.sqlfiddle.com/#!2/3a378/3) – MajidTaheri

0

您也可以將記錄插入到內存表中。在完整插入到內存表後面的代碼後插入內存表中的多行。

INSERT INTO TABLE_A (A, B, C, D) 
SELECT A,B,C,D FROM INMEMORY_TABLE 

DELETE FROM INMEMORY_TABLE