Me preguntaba si hay un límite en una serie de instrucciones SELECT UNION que puedo enviar a un servidor SQL. Puedo tener hasta 36 hechos en una declaración de SQL, por lo que se vuelve bastante largo, en cuanto a los caracteres. (También cada una de esas instrucciones SELECT es un tanto complejo por sí mismo con el caso cuando las declaraciones en el mismo.)SQL Server: ¿Cuál es el límite en el número de UNIONs?
Respuesta
De SQL 2008 BOL
"Cualquier número de operadores UNION puede aparecer en una instrucción de Transact-SQL"
también desde MSDN "Especificaciones de capacidad máxima para SQL Server" (2008):
tamaño del lote (1) Tamaño65.536 * Red de paquetes
longitud de una cadena que contiene instrucciones SQL (tamaño de lote) (1)65.536 * tamaño de paquete de red
(1) paquete de red tamaño es el tamaño de la secuencia de datos tabular (TDS) paquetes utiliza para comunicarse entre las aplicaciones y el Motor de base de datos relacional. El tamaño del paquete predeterminado es de 4 KB y está controlado por la opción de configuración de tamaño de paquete de red.
En mi opinión, eso significa 268,435,456 bytes cuando se utilizan los valores predeterminados. Por favor, diga que su consulta es más corta que eso.
De acuerdo con este post en algún lugar entre 8000 y 16000, para esta consulta en particular. Probablemente esté gobernado principalmente por los recursos disponibles para su SQL Server.
Puede valer la pena hacer otra pregunta sobre el caso particular que tiene para un método alternativo que no necesita tantas uniones.
+1 Buen punto. Sospecho que si tienes que hacer muchos UNIONES entonces hay algo mal con tu estructura de datos o consulta. –
¿36 son demasiados? – ahmd0
Es un poco, probablemente significa que hay una mejor manera de hacer lo que sea. Depende de la circunstancia, pero vale la pena preguntar (o buscar preguntas anteriores). –
Nigromancia, porque ahora sé la respuesta de la vida real.
Técnicamente, como dijo Neil Moss,> 268 millones de bytes (caracteres ASCII), o> 134 millones de caracteres UTF-16.
Sin embargo, existe un límite de "256 tablas por instrucción SELECT".
Y si bien se puede utilizar más de 256 tablas en una consulta CON Declaraciones de la Unión, dicha consulta no se puede utilizar como una función de vista, con valores de tabla o como una sub consulta para una instrucción SELECT.
Además, si utiliza una consulta de este tipo directamente, puede alcanzar el límite de espacio de la pila del optimizador de consultas en aproximadamente 1'300-1'500 SELECT.
Lo sé, porque gracias a un gran (advertencia - sarcasmo) OCP (código original "programador"), tenemos ese esquema af * ed up, y en realidad encontré ambos, el 256 y el 1'300 - 1'500 límite.
(una tabla por tipo de objeto, en caso de que alguien se pregunta; con exactamente la misma columna esquema (pero no los nombres) según la tabla - en lugar de una tabla de referencia con el tipo de objeto ...)
- 1. ¿Cuál es el número máximo de columnas permitido en la vista de SQL Server 2008?
- 2. Límite de SQL Server FILESTREAM
- 3. ¿Cuál es el alcance de CONTEXT_INFO en SQL Server?
- 4. ¿Cuál es el equivalente de SQL Server APPLY en Oracle?
- 5. ¿Cuál es el uso de SYNONYM en SQL Server 2008?
- 6. ¿Cuál es el valor de NULL en SQL Server?
- 7. ¿Cuál es el uso del operador "&" en SQL SERVER
- 8. ¿Cuál es el límite de Sinatra?
- 9. ¿Cuál es el equivalente de SQL Server de INET_ATON
- 10. ¿Cuál es el límite de auto_increment (integer) en mysql
- 11. LÍMITE 10..20 en SQL Server
- 12. SQL Server El recuento es lento
- 13. Optimización de solicitudes HTTP: ¿Cuál es el límite?
- 14. El límite de SQL CE 4.0
- 15. número de filas SQL Server
- 16. Encuentra el número más pequeño no utilizado en SQL Server
- 17. ¿Cuál es el "límite de memoria privada suave" en GAE?
- 18. ¿Cuál es el límite de tamaño para un argumento de subprograma varchar2 PL/SQL en Oracle?
- 19. Número de filas 'superpuestas' en SQL Server
- 20. ¿Cuál es el uso de GO en SQL Server Management Studio & Transact SQL?
- 21. Límite superior para clave primaria autoincrement en SQL Server
- 22. ¿Cómo funciona SQL Server el número estimado de filas?
- 23. ¿límite de conexión de conexión de SQL Server?
- 24. sql server: El número estimado de filas está lejos
- 25. ¿Cuál es el límite del tipo de campo BIGINT en SQL?
- 26. escribir llamada al sistema, ¿cuál es el número de bytes límite?
- 27. Comodín de número en SQL Server
- 28. ¿Cuál es el significado SQL de 0x5E5B7D7E?
- 29. ¿Cuál es el máximo número de métodos por clase .NET
- 30. SQL Server, donde el campo es int?
¿Qué versión de SQL por favor? –