gpt4 book ai didi

sql - SQL Server 2005 的首选合并方法是什么?

转载 作者:行者123 更新时间:2023-12-03 02:50:54 26 4
gpt4 key购买 nike

我主要使用存在方法将行合并到表中,但我正在考虑切换到行计数方法。有什么理由不这样做吗?

存在方法

If Exists(Select * From Table Where ID = @ID) Begin

Update Table Set Value = @Value Where ID = @ID

End Else Begin

Insert Into Table (Value) Values (@Value);

End


行计数方法

Update Table Set Value = @Value Where ID = @ID 

If (@@RowCount = 0) Begin

Insert Into Table (Value) Values (@Value);

End


性能

行计数方法似乎要快得多。在大约有 50k 行的表上,它的计时时间是 Exists 方法 时间的 1/5。这些测试不太科学,但即使保守的 +/- 15% 也相当可观。这是我想转行的主要原因。


注意

为了便于阅读,这些示例特意变得简单。它们绝不反射(reflect)我的实际情况。

最佳答案

我没有看到任何特别的问题。不过,您必须尝试哪一个性能更高(尽管我认为这在本例中微不足道)。但正如 Cade 指出的,使用事务。

另请注意,对于 SQL Server 2008,您可以使用 MERGE 语句(以防万一您要升级)。

关于sql - SQL Server 2005 的首选合并方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1597357/

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