Семь внутренних объединений в запросе слишком много? - PullRequest
14 голосов
/ 31 октября 2008

У меня есть запрос, который имеет 7 внутренних объединений (потому что большая часть информации распределена в других таблицах), несколько коллег были удивлены. Я задавался вопросом, должны ли они быть удивлены или у них 7 внутренних соединений нормально?

Ответы [ 14 ]

1 голос
/ 31 октября 2008

это 7 внутренних объединений в одной таблице, 7 внутренних объединений в разных таблицах или 7 вложенных внутренних объединений?

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

предостережение: если это 7 вложенных внутренних объединений в одной таблице, вероятно, у вас плохо структурированная таблица; -)

1 голос
/ 31 октября 2008

7 хорошо, если ваша база данных требует этого. Однако если для достижения вашей цели необходимо 7, я бы пересмотрел проект базы данных, чтобы убедиться, что этот уровень неизвестности действительно необходим.

Из любопытства, это DB2? Просто образец, который я заметил:)

0 голосов
/ 31 октября 2008

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

0 голосов
/ 31 октября 2008

Я думаю, что вы хотите избежать глубины соединения больше 7. 7 внутренних соединений глубиной менее 7 соединений, конечно, не неслыханно, но иногда люди слышат «7 соединений» и думают, что нет-нет 7 соединений, а не глубина.

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