gpt4 book ai didi

c# - SQL Server批量插入/更新与插入或更新场景中的MERGE

转载 作者:太空狗 更新时间:2023-10-29 20:22:18 24 4
gpt4 key购买 nike

我需要找到使用 sql server 和 asp.net 在数据库中插入或更新数据的最佳方法。如果数据存在,这是一个标准场景,如果不存在,则更新它。我知道这里有很多关于此的话题,但没有人回答我需要知道的内容。

所以我的问题是,当您更新/插入 5k - 10k 行时确实没有问题,但是 50k 或更多时会怎样。

我的第一个想法是使用 sql server 2008 MERGE 命令,但如果它是 50k+ 行,我有一些性能考虑。此外,我不知道我是否可以基于表中的其他唯一键而不是主 id 键(int)以这种方式合并数据。 (准确的说是不会随时间变化的产品序列号)。

我的第二个想法是首先获取所有产品序列号,然后将新数据序列号与其进行比较,并将其分为要插入的数据和要更新的数据,然后进行一次批量插入和一次批量更新。

我只是不知道哪个会更好,使用 MERGE 我不知道性能会如何,它只被 sql server 2008 支持,但它看起来很简单,第二个选项不需要 sql 2008 年,批处理应该很快,但首先选择所有系列并根据它们进行划分可能会有一些性能损失。

你怎么看,怎么选?

最佳答案

合并性能更好,因为“MERGE 语句最重要的优点之一是所有数据只读取和处理一次”

您不需要主键,您可以加入一个或多个使您的记录独一无二的字段

关于c# - SQL Server批量插入/更新与插入或更新场景中的MERGE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3787252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com