9
A
回答
6
BULK INSERT與SQL Server的數據庫引擎在進程中運行,因此避免了通過客戶端API的網絡層傳遞數據 - 這使得它比BCP和DTS/SSIS更快。
此外,使用BULK INSERT,您可以指定數據的ORDER BY,如果這與表的PK相同,則鎖定發生在PAGE級別。寫入事務日誌發生在頁面級別而不是行級別。
在常規INSERT的情況下,鎖定和事務日誌寫入處於行級別。這使得BULK INSERT比INSERT語句更快。
1
至少它可以避免爲要插入的每條記錄創建和提交事務的開銷。還有其他的節省:例如,在整個網絡中傳送更大的數據塊,而不是一次一個記錄將有所幫助。
然後,也許更有趣的是,DB實現者可以(我不知道是否有任何特定的供應商實際做到這一點)開始變得聰明 - 他們可以查看要插入的記錄集,而不是重新組織數據頁容納單個記錄可以對頁面進行批量重組以允許新的插入,同樣我們可以想象,如果我們知道我們插入一組記錄,則可以更有效地完成混洗索引。
0
它在內部轉換爲OLEDB記錄集,然後加載表。
我還沒有給它太多想法,但我認爲這是在SQL Server框而不是客戶端上運行時更快。另外,您可以管理您無法使用正常INSERT的約束條件
相關問題
- 1. BULK INSERT
- 2. BULK INSERT無法正常工作
- 3. 如何使用Bulk Insert API?
- 4. 使用BULK INSERT
- 5. InnoDB Table Bulk Insert
- 6. 與BULK INSERT
- 7. TSQL - Bulk Insert
- 8. BULK INSERT錯誤
- 9. Bulk Insert MAXERRORS
- 10. MongoVUE Bulk Insert
- 11. BULK INSERT到Java中
- 12. 替代SQL BULK INSERT
- 13. SQL Bulk Insert UTF-8
- 14. .insert如何工作?
- 15. 的SQL Server BULK INSERT語法
- 16. Bulk Insert in Entity Framework v6.1
- 17. SSIS Bulk Insert where fields contains commas?
- 18. SQL中使用BULK INSERT
- 19. BULK INSERT TMP TABLE sql server
- 20. BULK INSERT到SQL Server中
- 21. 帶條件的SQL BULK INSERT
- 22. SELECT INTO與BULK INSERT配對
- 23. MySQL中的BULK INSERT問題
- 24. 使用XML的BULK INSERT
- 25. Bulk Insert不插入任何行
- 26. 如何工作UNIQUE + INSERT IGNORE?
- 27. MSSQL - 如何在BULK INSERT中設置默認值?
- 28. SQLite遊標如何在內部工作?
- 29. canvas.width = canvas.width如何在內部工作?
- 30. entrySet()如何在HashMap內部工作?