2016-01-29 3 views
0

Каков наилучший способ написать запрос из этих 2 методов? 1. Использование подзаголовка 2. Использование соединенийПодпрограмма VS Присоединяется

Какой способ выполняется быстрее и лучше при написании запросов?

спасибо.

Shashika

+2

Ваш вопрос слишком широк. Если у вас есть конкретный вопрос, включите его в вопрос. –

+0

Обычно присоединяется, но зависит от того, что вы делаете. – Nikki9696

+1

Вопрос также является дубликатом [this] (http://stackoverflow.com/questions/2577174/join-vs-sub-query) и [this] (http://stackoverflow.com/questions/3856164/sql- joins-vs-sql-subqueries-performance) – Boris

ответ

1

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

+0

Большое спасибо за информацию. , – Shashika

2

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

В СУШКАХ РСУБД может создать план выполнения, который лучше подходит для вашего запроса, и может предсказать, какие данные должны быть загружены для обработки, и сэкономить время, в отличие от подзапроса, где он будет запускать все запросы и загружать все свои данные для обработки.

Хорошая вещь в подзапросах заключается в том, что они более читабельны, чем JOIN: вот почему большинство новых людей SQL предпочитают их; это простой способ; но когда дело доходит до производительности, JOINS лучше в большинстве случаев, хотя их тоже трудно читать.

- Кронас, Stackoverflow

+1

Ваше утверждение просто неверно. Иногда подзапросы быстрее. Иногда соединения быстрее. Часто планы исполнения одинаковы. Детали запроса и структуры базы данных также являются очень важными соображениями. –

+0

Ниже приведена хорошая книга, которая немного помещается в тему. Да, иногда вспомогательные запросы выполняются быстрее; однако, как правило, соединения быстрее, поэтому, вероятно, лучше попробовать оба сценария. Вот ссылка на хорошую книгу эффективности запросов для SQL Server. https://books.google.com/books?id=3branTEOAEYC&pg=PA347&dq=subquery+vs+joins&hl=ru&sa=X&ved=0ahUKEwik14nCjdDKAhUqmoMKHd3xBog4ChDoAQggME#v=onepage&q=subquery%20vs%20joins&f=false – Cannon