2010-04-01 13 views

Respuesta

9

Las limitaciones de SQL Server se enumeran here

El número de tablas por consulta sólo está limitado por la cantidad de recursos disponibles.

+0

Gracias Barry por su respuesta. – kandarp

9

En SQL Server 2008, la cantidad máxima de tablas que puede tener en un SELECT está limitada solo por los recursos disponibles (source).

En SQL Server 2005, había un límite de 256 tablas para un único SELECT (source).

Aunque, si te estás acercando a ese tipo de números, ¡me preocuparía un poco tbh!

+2

"Raymond Chen señala que si tiene que preguntar dónde están los límites del sistema operativo, probablemente esté haciendo algo incorrecto" http://www.codinghorror.com/blog/2007/10/pushing-operating-system-limits. html –

+3

La única vez que he visto a alguien alcanzar los límites fue cuando usaban tontamente vistas para llamar a vistas que llamaban a vistas, etc. Si usa vistas para llamar a vistas, es hora de detenerse ahora mientras su sistema sigue funcionando (No solo se encontrará con los límites, sino que tendrá severos problemas de rendimiento mucho antes de que se ejecute dentro de los límites de lo que se puede llamar). – HLGEM

+1

Hicimos legítimamente el límite 256 en SQL 2005 una vez. – Joshua

10

Las otras respuestas ya dan la respuesta directa a su pregunta

limitada solamente por los recursos disponibles

Sin embargo, incluso si SQL Server compila con éxito un plan para su consulta que no quiere decir que debieras. Cuantas más combinaciones tenga, exponencialmente mayor será el espacio de posibles planes de consulta y podrá obtener planes muy poco óptimos.

Para una consulta con 12 se une el número de pedidos de combinación posibles es 28,158,588,057,600. Además cada unión puede ser de tres algoritmos posibles (hash, bucles anidados, Merge)

En la "resolución de problemas prácticos servidor SQL 2005" libro de César Galindo-Legaria dice

Si se está uniendo a más de 20 mesas, lo más probable es que el optimizador no sea revisando todo el espacio de búsqueda, pero confiando más en la heurística .... hemos visto aplicaciones que ejecutan consultas regulares que tratan con más de 100 tablas. Si bien es posible ejecutar este tipo de consultas muy grandes, que realmente está estirando el sistema en estos casos y debe tener mucho cuidado ir tan lejos

+0

Según las Pautas de Microsoft, más de cinco tablas no pueden unirse a SQL Server. ¿Es correcto? Si no es correcto, según su perspectiva, cuántas tablas se pueden unir en SQL Server para un mejor rendimiento. – RGS

-4

Para inner join, máx 256 tablas se pueden unir. Para outer join, se pueden unir 2 tablas como máximo.

Fuente: formación en el aula.

+0

Le sugiero que solicite un reembolso por este entrenamiento.Es trivial escribir una consulta que muestre que más de 2 tablas pueden unirse externamente. –

Cuestiones relacionadas