CROSS APPLY Performance - PullRequest
       0

CROSS APPLY Performance

2 голосов
/ 02 февраля 2010

Можно ли улучшить производительность, взяв следующий SQL:

SELECT t1.id, 
       t1.name, 
       t2.subname, 
       t2.refvalue 
FROM   table1 AS t1 
       CROSS apply (SELECT TOP 1 t2.subid, 
                                 t2.subname, 
                                 t3.refvalue 
                    FROM   table2 AS t2 
                           INNER JOIN table3 AS t3 
                                   ON t2.subid = t3.subid 
                    ORDER  BY lastupdated DESC) AS t2 

И переписать его так, чтобы он выглядел так:

SELECT t1.id, 
       t1.name, 
       t2.subname, 
       t3.refvalue 
FROM   table1 AS t1 
       CROSS apply (SELECT TOP 1 t2.subid, 
                                 t2.subname 
                    FROM   table2 AS t2 
                    ORDER  BY lastupdated DESC) AS t2 
       INNER JOIN table3 AS t3 
               ON t2.subid = t3.subid 

Ответы [ 2 ]

1 голос
/ 02 февраля 2010

Во-первых, дает ли он тот же результат?

Если так, что говорит план запроса, а также set statistics io on?

0 голосов
/ 02 февраля 2010

Сколько строк в Таблица1, Таблица2 и Таблица3? Сколько пересекаются и в конечном итоге в результате? Я пытаюсь выяснить цель переписывания запроса и согласен с gbn ... получаете ли вы один и тот же результат, план запросов выглядит одинаково в обоих случаях, улучшается ли статистика ввода-вывода, и переписанный запрос выполняется быстрее?

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