Каковы решающие факторы для порядка таблиц при объединении между ними? - PullRequest
3 голосов
/ 25 марта 2011

Я знаю, что при объединении нескольких таблиц производительность зависит от порядка их объединения.Какие факторы следует учитывать при объединении таблиц?

Ответы [ 2 ]

1 голос
/ 25 марта 2011

Большинство современных RDBM оптимизируют запрос, основываясь на том, какие таблицы объединены, используемые индексы, статистика таблиц и т. Д. Они редко, если вообще когда-либо, отличаются в своем окончательном плане выполнения в зависимости от порядка соединений в запросе.

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

В конце концов, запуск различных версий ваших запросов в SQL Server Management Studio и просмотр фактических планов выполнения - единственный способ определить, действительно ли порядок может изменить ситуацию.

0 голосов
/ 25 марта 2011

Насколько я знаю, порядок соединения не влияет на производительность запроса.Механизм запросов проанализирует запрос и выполнит его так, как он считает наиболее эффективным.Если хотите, попробуйте написать запрос, используя разные порядки соединения, и посмотрите на план выполнения.Они должны быть одинаковыми.

Смотрите эту статью: http://sql -4-life.blogspot.com / 2009/03 / order-of-inner-joins.html

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