Присоединение к вложенному циклу - Nested loop join
Эта статья не цитировать любой источники.Февраль 2018 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Эта статья требует внимания специалиста по математике.Март 2011 г.) ( |
А соединение вложенного цикла наивный алгоритм который объединяет два набора с помощью двух вложенных петли.[1] Операции соединения важны для база данных управление.
Алгоритм
Два отношения и соединяются следующим образом:
алгоритм nested_loop_join является для каждого кортеж р в р делать для каждого кортеж s в S делать если р и s удовлетворять условию соединения тогда урожай кортеж <р,s>
Этот алгоритм будет включать nр* бs+ bр блочные переводы и nр+ bр ищет, где bр и бs - количество блоков в отношениях R и S соответственно, а nр - количество кортежей в отношении R.
Алгоритм работает в Ввод / вывод, где и это количество кортежей, содержащихся в и соответственно и могут быть легко обобщены для соединения любого количества отношений ...
В блокировать вложенный цикл алгоритм присоединения[2] является обобщением алгоритма простых вложенных циклов, в котором используются дополнительные объем памяти чтобы уменьшить количество раз, когда отношение сканируется. Он загружает большие фрагменты отношения R в основную память. Для каждого фрагмента он сканирует S и оценивает условие соединения для всех пар кортежей, находящихся в настоящее время в памяти. Это сокращает количество сканирований S до одного для каждого фрагмента.
Вариант соединения индекса
Если внутреннее отношение имеет индекс для атрибутов, используемых в соединении, тогда наивное гнездовое соединение цикла может быть заменено индексным соединением.
алгоритм index_join является для каждого кортеж р в р делать для каждого кортеж s в S в поиске по индексу делать урожай кортеж <р,s>
Временная сложность этого варианта улучшается с O (M * N) тоже(M * бревно N).
Смотрите также
Рекомендации
Этот Информатика статья - это заглушка. Вы можете помочь Википедии расширяя это. |