我想插入n個記錄到一個表中。可能有許多併發用戶,他們可能會從該表中插入/更新/選擇數據。在這樣的表格中插入1000條記錄的更好方法是:Sql插入查詢性能
- 將單個sql查詢發送到具有多個插入的數據庫。這將服務器保存到數據庫調用,但(我不確定)鎖定表,直到插入完成,並且對此表的所有其他查詢將等待。
- 在一些塊中劃分1000條記錄並在多個sql查詢中發送它們。這可以讓其他查詢在表上執行,但花時間在服務器上調用數據庫。
這是取決於某件事情,還是有一種方法總是最優的? 這是否取決於事務是否使用,而插入數據? 還有其他更好的方法來執行這樣的插入嗎?
我使用的數據庫是MS SQL,但它很有趣,它如何在Oracle等其他數據庫中工作。
有趣的博文+1。這讓我感興趣,因爲在您的測試中_reason_交易顯得更快。我懷疑這是因爲許多必要的鎖已經被事先通過。但是,一個關鍵的問題是,你的帖子沒有解決的是負載下的行爲。你的測試似乎是孤立的;在現場系統中,我懷疑結果會很快反轉。 – EBarr 2011-04-20 18:42:17