我正在使用C#,實體框架和SQL Server 2008 Express。
我通過互聯網連接到數據庫。
加速保存/更新數據到數據庫的最佳方法是什麼?
將180條記錄保存到數據庫需要87秒的時間。
將相同數量的記錄保存到本地(在同一臺計算機上)SQL Server只需要3.5秒。
對於每一個記錄,我保存/更新我檢查,如果這個主鍵記錄在數據庫中,
如果不存在的話,我只是將它保存,
如果存在的話我用ObjectContext.ApplyCurrentValues更新( entitySetName,currentEntity)方法。如何加速通過互聯網將數據保存到數據庫?
0
A
回答
6
有幾個原因不通過互聯網使用SQL。
- 一個,對我來說會構成太大的 風險暴露在互聯網上的SQL服務器 。我不想SQL攻擊:)。如果你流量爲 ,那麼這是一個不同的故事 ,因爲中間人攻擊的人是 ,這很難。
- 二,SQL 協議是一個「健談」協議,因此具有高延遲的服務器之間的鏈接將會影響您的查詢。
如果可能的話,我會在SQL端建立一個WCF服務,並讓我的客戶端將數據發送到服務,這將執行查詢到數據庫。與SQL相比,任何WCF協議都不那麼健談,並且與現在看到的相比,您很可能會實現速度增益。
當然,在傳輸數據時分批處理數據將有助於減少提交記錄所需的流量。由於延遲,您希望儘可能少地通過線路進行呼叫。
1
我會考慮發送一個類似於CSV的字符串與您的所有數據到一個存儲過程,然後在服務器上存儲過程將使用SQL函數來拆分數據並創建一個臨時表,然後存儲過程將繼續進行檢查並在必要時插入。
0
除了Mikael Svenson寫的。
您可以通過「蠻力」克服延遲並在多個數據庫連接上運行。但總的來說,我真的推薦Mikael的建議。
相關問題
- 1. 將數據保存到數據庫,通過數據網格
- 2. 如何通過互聯網從SQL數據庫獲取數據
- 3. 數據庫,通過互聯網
- 4. 從Android上通過互聯網從數據庫檢索數據
- 5. 如何將從互聯網上傳的照片保存到數據庫中?
- 6. 如何通過互聯網訪問數據庫(+ Ionic和PouchDB)
- 7. 如何通過互聯網定期更新SQLlite數據庫?
- 8. 如何通過互聯網更新數據庫文件?
- 9. 如何通過動態加載的控件將數據保存到數據庫
- 10. 如何通過互聯網將Delphi連接到遠程MS Access數據庫?
- 11. 通過Spring數據存儲庫將數據保存到數據庫
- 12. 如何根據互聯網連接將數據保存到不同的數據庫
- 13. 通過互聯網的實時數據
- 14. 通過互聯網同步SQL數據
- 15. 將數據從互聯網保存到資產文件夾中
- 16. 如何將網頁收集數據保存到數據庫
- 17. 遠程數據庫訪問任何通過互聯網
- 18. 如何快速通過保存在數據庫
- 19. 如何通過Hibernate將圖像保存到SQLite數據庫?
- 20. 如何通過carrierwave將圖片url保存到數據庫中
- 21. 使用JList通過JDBC將表數據保存到數據庫通過JDBC
- 22. 通過存儲過程將相關數據保存到數據庫
- 23. 將ckeditor的內聯編輯數據保存到mysql數據庫
- 24. Total.js將數據保存到數據庫
- 25. 將數據集保存到數據庫
- 26. 將數據集保存到數據庫
- 27. 將數據保存到數據庫yii2
- 28. Firebase - 將數據保存到數據庫
- 29. 如何將Handsontable保存到數據庫
- 30. 通過互聯網保存Java屬性