我想要儘可能高效地插入到數據庫中,並且有大量不斷傳入的數據(每分鐘大約10,000個,並且正在增長)。目前我正在使用準備好的插入語句,但我正在考慮使用SqlBulkCopy類以更大的塊導入數據。快速插入;使用關係數據的BulkCopy
問題是我沒有插入到單個表中 - 數據項的元素被插入到許多表中,並且他們的標識列被用作同時插入的其他行中的外鍵。我知道批量複製並不意味着允許更復雜的插入,但我想知道是否值得在uniqueidentifier列中交換我的身份列(在這種情況下是bigint)。這將允許我爲每個表執行幾個批量複製,並且由於我可以在插入之前確定ID,所以我不需要檢查SCOPE_IDENTITY之類的任何內容,這些內容阻止我使用批量複製。
這聽起來像是一個可行的解決方案,或者我可能會遇到其他潛在問題嗎?或者,還有另一種方法可以快速插入數據,但保留使用bigint標識列嗎?
謝謝。
「創建這樣一個可以持續且可靠工作的過程很難...」沒錯,但是如果你在數據庫之外的一個單獨的非共享應用程序中執行它,它會容易得多。沒有爭用,沒有競爭條件,沒有交易。 –
我嘗試了GUID,獲得了10倍的性能(approp。10,000 inserts per second)。 :) – Barguast