哪些SQL UPDATE语句会更快?

Lui*_*uiz 2 sql t-sql database sql-server

哪个会更快?

方法A:

UPDATE table1
SET table1.column1 = table2.column1 
FROM table2
WHERE table1.column2 = table2.column2
Run Code Online (Sandbox Code Playgroud)

方法B:

UPDATE table1
SET table1.column1 = table2.column1 
FROM table1
JOIN table2 on table1.column2 = table2.column2
Run Code Online (Sandbox Code Playgroud)

他们会生成相同的执行计划吗?

有什么情况我应该避免其中一个吗?

我做过的一些测试几乎同时执行它们,但总是很高兴听到第二个意见.

Yuc*_*uck 8

它们是等价的.您可以通过自己检查执行计划来验证这一点.第二种选择:

UPDATE table1
SET table1.column1 = table2.column1
FROM table1 JOIN
     table2 on table1.column2 = table2.column2
Run Code Online (Sandbox Code Playgroud)

目前是编写查询的首选方法,因为更清楚的是为什么要指定标准.