SQL Server OUTER JOIN несколько связанных полей - PullRequest
0 голосов
/ 29 сентября 2011

Я пытаюсь запросить данные из двух таблиц в одну таблицу, используя OUTER JOIN.Дело в том, что для уникальной идентификации строк необходимы три поля.Это подводит меня к запросу, содержащему следующее выражение:

FROM Data1 DB
  RIGHT OUTER JOIN Data2 FT on (DB.field1 = FT.Value1 
                                and DB.field2 = FT.field2 
                                and DB.field3 = FT.field3)

Однако запрос выполняется почти всегда.Чтобы протестировать все это, я использовал условия WHERE и FULL OUTER JOIN, а в случае условий WHERE это делается почти мгновенно, тогда как при использовании FULL OUTER JOIN у меня возникала та же проблема, и обычно все заканчивалось отменой всего через 5 минут или около того.

Может кто-нибудь увидеть, что я делаю не так с моим запросом?Спасибо за любую помощь!

Ответы [ 2 ]

0 голосов
/ 21 октября 2011

Вам действительно нужны все записи обратно из запроса?Некоторые критерии WHERE могут значительно сократить время выполнения.

Да и индексы.Проверьте план и создайте рекомендованные индексы.

0 голосов
/ 29 сентября 2011

Ваш лучший выбор - просмотреть план выполнения (и, если вам это удобно, опубликуйте его в своем вопросе).Это скажет вам, где происходит самая дорогая часть запроса.

...