簡體   English   中英

在插入或更新方案中,SQL Server批量插入/更新與MERGE

[英]Sql server bulk insert/update vs MERGE in insert or update scenario

我需要找到使用sql server和asp.net在數據庫中插入或更新數據的最佳方法。 如果數據存在則是標准方案,如果沒有插入則更新。 我知道這里有很多話題,但沒有人回答我需要知道的事情。

所以我的問題是,當您更新/插入5k - 10k行但50k及更多行時,確實沒有問題。

我的第一個想法是使用sql server 2008 MERGE命令,但如果它是50k +行,我有一些性能考慮。 此外,我不知道我是否可以基於主id鍵(int)而不是表中的其他唯一鍵來這種方式。 (確切地說,產品序列號不會隨時間變化)。

我的第二個想法是先獲取所有產品系列,然后將新數據序列與之比較,並將其划分為數據以插入和更新數據,然后只進行一次批量插入和一次批量更新。

我只是不知道哪個更好,用MERGE我不知道性能是什么,只有sql server 2008支持,但看起來很簡單,第二個選項不需要sql 2008,批量應該很快,但首先選擇所有連續出版物並根據它們進行划分可能會有一些性能損失。

你有什么看法,選擇什么?

更好地合並性能方式因為“MERGE語句最重要的優點之一是所有數據只被讀取和處理一次”

您不需要主鍵,您可以加入一個或多個字段,使您的記錄與眾不同

如您所述,在序列號上執行合並應該沒有問題。 在使用MERGE時,您可能希望閱讀針對Microsoft推薦的最佳實踐的優化MERGE語句性能

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM