У какого соединения больше циклов ввода / вывода и ЦП? - PullRequest
0 голосов
/ 27 августа 2009

У какого соединения больше циклов ввода-вывода и ЦП? Hash join или Merge join или Loop join?

Ответы [ 3 ]

4 голосов
/ 27 августа 2009

Краткий ответ: Loop join

В порядке от наименее эффективного до самого эффективного

  1. Наименее эффективный Соединение цикла проверяет каждое значение «левой» таблицы на предмет каждого значения «правой» таблицы. (Как вложенный цикл for в программировании)
  2. Наиболее часто встречающееся соединение - это хеш-соединение , где в самой маленькой таблице есть хеш-значения, предварительно рассчитанные для тестируемых ключей. Хеш затем проверяется по другой таблице. Обычно это используется, когда каждая таблица находится не в том же порядке сортировки перед существом процесса.
  3. Наиболее эффективным является объединение слиянием . Это используется, когда обе таблицы изначально хранятся на диске в одном и том же порядке (т.е. имеют кластерные индексы и обе в одном и том же порядке). Здесь алгоритм проходит по обеим таблицам одновременно и пропускает участки, где они не перекрываются.
1 голос
/ 27 августа 2009

Проверьте план выполнения вашего запроса, чтобы узнать

0 голосов
/ 27 августа 2009

Если я правильно помню, это будет (самое дорогое, по крайней мере):

Loop Join
Объединить присоединиться
Hash Join

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