![](/img/trans.png)
[英]SQL Server insert/Update/Delete and Select performance/deadlock suggestions
[英]SQL Server Performance: Delete/Insert Vs Select/Update
我有一个非常大的数据库,只有 60 多场演出,有许多包含数百万行的表。 我遇到了一些超时错误,所以我正在重新考虑我的一些代码设计。
目前,我的伪代码是这样的:
从表中删除 person=123(删除大约 200 行)
然后我重新插入更新的数据(再次插入 200 行)。 数据总是不同的,因为它是时间敏感的。
如果我要进行更新而不是插入,我必须先选择行(我在 c# 中使用 ORM)。
tl;dr 我只是想知道,简单的问题,什么更划算。 选择/更新还是删除/插入?
使用删除/插入,您将写入数据库两次。 一次删除一次插入。 您还将分别记录这两个事务,除非您将整个过程正确地包装在一个事务中。
您可以测试这两种方法并在 SQL Profiler 中观察结果,但 9/10 更新会更快。
可能需要注意的是,我会确保对 person 键进行索引,这样您就不会进行完整的表扫描来查找受影响的记录。
最后,正如@Mundu 所说,您可能希望通过 ADO.NET 而不是 ORM 使用参数化查询来执行此操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.