2010-04-01 4 views

ответ

9

Ограничения для SQL Server перечислены here

Количество таблиц в запросе ограничено только количеством доступных ресурсов.

+0

Спасибо Барри за ответ. – kandarp

9

В SQL Server 2008 максимальное количество таблиц, которые вы можете иметь в SELECT, ограничено только доступными ресурсами (source).

В SQL Server 2005 было установлено ограничение на 256 таблиц для одного SELECT (source).

Хотя, если вы встаете на эти виды чисел, тогда я буду немного обеспокоен tbh!

+2

«Раймонд Чен отмечает, что если вам нужно спросить, где находятся ограничения операционной системы, вы, вероятно, делаете что-то не так» http://www.codinghorror.com/blog/2007/10/push-operating-system-limits. html –

+3

Единственный раз, когда я когда-либо видел, что кто-то попадал в пределы, заключался в том, что они глупо использовали представления для вызова представлений, которые назывались представлениями и т. д. Если вы используете представления для вызова представлений, пришло время остановиться сейчас, пока ваша система все еще функционирует (не только вы столкнетесь с ограничениями, но у вас будут серьезные проблемы с производительностью задолго до того, как вы столкнетесь с границами waht). – HLGEM

+1

Мы по праву достигли предела 256 в SQL 2005 один раз. – Joshua

10

Другие ответы уже дают прямой ответ на ваш вопрос

Limited только имеющимися ресурсами

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

Для запроса с 12 соединениями количество возможных заявок на соединение составляет 28,158,588,057,600. Кроме того, каждое объединение может быть из трех возможных алгоритмов (хэш, вложенные циклы, слияние)

В «практическом устранении неполадок SQL Server 2005» Книга Cesar Галиндо-Легария говорит

Если вы присоединяетесь более 20 столов, вероятность того, что оптимизатор не , рассматривая все пространство поиска, но полагаясь больше на эвристику .... мы видели приложения, которые запускают регулярные запросы, касающиеся более 100 таблиц. Хотя можно запускать такие очень большие запросы, вы действительно растягиваются системы в этих случаях и должны быть очень осторожны происходит это далеко

+0

В соответствии с рекомендациями Майкрософт более пяти таблиц не могут присоединиться к SQL Server. Правильно ли это? Если не правильно, то с вашей точки зрения, сколько таблиц может присоединиться к SQL Server для повышения производительности. – RGS

-4

Для inner join, не более 256 таблиц могут быть объединены. Для outer join, максимум 2 таблицы могут быть соединены.

Источник: обучение в классе.

+0

Я предлагаю вам попросить возместить это обучение.Тривиально написать запрос, показывающий, что более двух таблиц могут быть соединены по внешнему виду. –

Смежные вопросы