更快的SQL性能

时间:2013-10-03 19:07:05

标签: sql-server

我必须在30个表中为每个表插入一条记录。来自其他系统的数据。我必须首次在表中插入数据,然后如果发生任何更新,那么我需要更新SQL Server中的表。我有两个选择:

a)我可以检查各个表行的时间戳,并更新时间戳是否更大。

b)每次我都可以删除记录并插入数据。

SQL Server数据库中哪一个会更快?是否还有其他选择来解决这种情况?

2 个答案:

答案 0 :(得分:1)

如果您没有更改记录的索引字段,那么尝试先更新然后插入的状态通常比删除/插入更快,因为您不强制数据库更新一堆索引信息。

如果使用Sql2008 +,您应该使用merge命令,因为它明确地清楚地清楚地处理更新/插入条件

ADDED

我还应该补充一点,就是你知道很少更新的使用模式(即90%插入),你可能有一个比更新/插入更快的drop / insert的情况 - 取决于很多细节。无论如何,如果使用2008 +

,合并是明显的赢家

答案 1 :(得分:0)

我一般喜欢掉落并重新插入。我发现它更清晰,更容易编码。但是,如果这种情况非常频繁发生并且您担心并发问题,那么使用选项1可能会更好。

另外,要考虑的另一件事是时间戳检查失败的频率(您不必插入或更新)。如果99%的数据是冗余/过期数据,那么无论如何,你最好选择1。