Asp.net

從 .Net 應用程序將參數傳遞與表值參數與 XML 到 SQL 2008

  • October 30, 2010

由於我們正在開發一個 asp .net 項目,因此當需要更新/插入多行時,有三種方法可以將數據更新到數據庫中

假設我們需要更新員工教育詳細資訊(可能是 1、3、5 或 10 條記錄)

更新數據的方法

  1. 將值作為參數傳遞(傳統方法),如果有 10 條記錄,則需要 10 次往返
  2. 將數據作為 xml 傳遞並在儲存過程中編寫邏輯以從 xml 獲取該數據並更新表(只需要單次往返)
  3. 使用表值參數(僅需要單次往返)

注意:數據以列表形式提供,因此如果需要通過,我需要將其轉換為 xml 或任何其他格式。

沒有。在整個應用程序中,我們需要批量更新數據(或多條記錄)

我只需要你的建議

  1. 哪種方法會更快(如果有其他成本請提及)
  2. 任何方法的可管理性或可測試性問題
  3. 任何方法的任何其他瓶頸或問題(序列化/反序列化問題或數據傳遞大小限制)
  4. 您為相同操作建議的任何其他方法

謝謝

表值參數方法很可能是最好的方法,因為您可以一次更新整批行;畢竟,您會得到一張可以輕鬆加入的表格。

其他方法要麼是逐行的,本質上比較慢,要麼需要在 SQL Server 方面進行一些處理;這通常不僅不是很有趣,而且比簡單地連接兩個表更容易出錯並且性能通常更低。

這正是 TVP 被引入的場景——解決“逐行”或“與 XML 混淆”的問題。我相信微軟有充分的理由推出這個,如果他們這樣做,你一定要好好嘗試一下,看看它是否有效。

但再說一遍:這只是一種“直覺”,沒有真正了解你的所有細節。只有您自己通過測試所有三個選項才能真正發現這一點。還有許多其他效果和參數可能會發揮作用,任何回答的人都不可能知道……

引用自:https://stackoverflow.com/questions/1951565