Какой из этих операторов SQL UPDATE будет быстрее? - PullRequest
2 голосов
/ 18 августа 2011

Что будет быстрее?

Метод A:

UPDATE table1
SET table1.column1 = table2.column1 
FROM table2
WHERE table1.column2 = table2.column2

Метод B:

UPDATE table1
SET table1.column1 = table2.column1 
FROM table1
JOIN table2 on table1.column2 = table2.column2

Будут ли они генерировать тот же план выполнения?

Есть ли какой-нибудь случай, когда мне следует избегать одного из них?

Некоторые тесты, которые я провел, выполнялись почти одновременно, но всегда приятно услышать второе мнение.

1 Ответ

8 голосов
/ 18 августа 2011

Они эквивалентны.Вы можете убедиться в этом, проверив план выполнения самостоятельно.Второй вариант:

UPDATE table1
SET table1.column1 = table2.column1
FROM table1 JOIN
     table2 on table1.column2 = table2.column2

В настоящее время является предпочтительным методом написания запросов, так как более понятно, почему указываются критерии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...