2010-02-08 1 views

ответ

5

Они, вероятно, выйдут с одним и тем же планом выполнения, что означает, что нет никакой разницы. Чтобы подтвердить, просто попробуйте каждый в SSMS с включенной опцией «Включить план выполнения».

В самом деле, один я бы пойти на это:

UPDATE mt 
SET mt.fieldx = 1 
FROM myTable mt 
    JOIN myView mv ON mt.ID = mv.ID 

Я предпочитаю этот синтаксис. Хотя, он тоже выйдет с одним и тем же планом исполнения.

Чтобы продемонстрировать это, я проверил тест с каждым вариантом инструкции UPDATE. В планах исполнения ниже шоу, все они вышли те же - все выполняют те же:
alt text http://img707.imageshack.us/img707/7801/60422461.png


alt text http://img683.imageshack.us/img683/7874/41210682.png


alt text http://img708.imageshack.us/img708/5020/20506532.png

+0

Я также предпочитаю этот синтаксис. Это намного яснее. –

0

Хотя это не говорит о производительности, Мне больше нравится первый пример, чтобы я мог проверить его без изменения базовой структуры кода. Обратите внимание, где и что я добавил в комментарии:

UPDATE myTable 
SET fieldx = 1 
--SELECT * 
FROM myTable AS mt 
     , myView AS mv 
WHERE mt.id = mv.id 

 Смежные вопросы

  • Нет связанных вопросов^_^