blo*_*lob 5 performance sql-server t-sql sql-server-2012
在我的应用程序中,我们的更新很少。大多数数据被删除和插入。
我的问题是,这将如何影响性能?
我们使用的是 SQL Server 2012。
请发表您的经验。
提前致谢!!
使用DELETE
+INSERT
模式而不是同时包含UPDATE
s 可能会产生很大的问题。IMO,这是一种反模式。UPDATES
99.9% 的情况下,尽可能使用会更好。
通常,DELETE
+INSERT
模式的实现方式是在目标中盲目删除行的子集,这可能会产生大量不必要的写入活动,因为即使没有任何更改,数据也总是会被重写。
这不仅会增加 I/O 子系统的负载,而且还会终止数据访问并发性,除非使用快照隔离(这会增加浪费的磁盘写入工作负载)。如果使用默认隔离级别并且并发读取数据,这种模式很容易产生大量死锁。
话虽如此,人们需要小心地实现UPDATE
s,因为它们仍然有可能重写未更改的行。值得庆幸的是,通过一些额外的代码就可以轻松解决这个问题。总而言之,UPDATE
尽管稍微增加了代码复杂性,但使用 s 是非常值得的。
根据您正在做的事情,使用表值参数之类的东西将整个所需状态作为一个整体发送到数据库并在那里而不是在客户端进行排序可能更容易、更可靠。
归档时间: |
|
查看次数: |
1853 次 |
最近记录: |