Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
En este artículo se muestran los tamaños y números máximos de diversos objetos definidos en SQL Server 2016 (13.x) y versiones posteriores. Si quiere ver los límites de edición, consulte Límites de capacidad de proceso por edición de SQL Server.
Para SQL Server 2014(12.x), consulte Especificaciones de capacidad máxima para SQL Server 2014.
Objetos del motor de base de datos
Valores máximos de diversos objetos definidos en las bases de datos SQL Server o a los que se hace referencia en instrucciones Transact-SQL.
| Objeto de Motor de base de datos de SQL Server | Valores máximos para SQL Server (64 bits) | Información adicional |
|---|---|---|
| Tamaño de lote | 65 536 * (tamaño del paquete de red) | El tamaño del paquete de red es el tamaño de los paquetes de flujo de datos tabulares (TDS) utilizados para comunicarse entre el Motor de base de datos relacional y las aplicaciones. El tamaño de paquete predeterminado es de 4 KB. El tamaño del paquete de red controla esta opción de configuración. |
| Longitud en bytes de una cadena que contiene instrucciones Transact-SQL (tamaño de lote) | 65 536 * (tamaño del paquete de red) | El tamaño del paquete de red es el de los paquetes de flujo de datos tabulares (TDS) utilizados para la comunicación entre el Motor de base de datos relacional y las aplicaciones. El tamaño del paquete predeterminado es 4 KB y se controla mediante la opción de configuración Tamaño de paquete de red. |
| Bytes por columna de cadena corta | 8,000 | |
Bytes por GROUP BY, ORDER BY |
8,060 | |
| Bytes por clave de índice | 900 bytes para un índice agrupado. 1700 bytes para un índice no agrupado. En SQL Server 2014 (12.x) y versiones anteriores, todas las versiones admitían 900 bytes para todos los tipos de índice. | El número máximo de bytes de una clave de índice agrupado no puede superar 900. Para una clave de índice no agrupado, el máximo es 1700 bytes. Puede definir una clave usando columnas de longitud variable cuyos tamaños máximos sumen más del límite. Pero los tamaños combinados de los datos de dichas columnas no pueden superar el límite. En un índice no agrupado, puede incluir más columnas sin clave. Estas no contarán para el límite de tamaño de la clave. Las columnas sin clave pueden ayudar a que algunas consultas den mejores resultados. |
| Bytes por clave de índice en tablas optimizadas para memoria | 2500 bytes para un índice no agrupado. No hay límite para un índice de hash, siempre y cuando todas claves de índice quepan en la fila. | En una tabla optimizada para memoria, un índice no agrupado no puede tener columnas de clave cuyos tamaños máximos declarados superen los 2500 bytes. No importa si los datos reales de las columnas de clave son más cortos que los tamaños máximos declarados. Las claves de índice de hash no tienen límites estrictos de tamaño. En el caso de los índices de tablas optimizadas para memoria no existe el concepto de columnas incluidas, ya que todos los índices cubren de forma inherente todas las columnas. En el caso de las tablas optimizadas para memoria, aunque el tamaño de fila sea de 8060 bytes, algunas columnas de longitud variable pueden almacenarse físicamente fuera de esos 8060 bytes. Pero los tamaños máximos declarados de todas las columnas de clave para todos los índices de una tabla, más las columnas adicionales de longitud fija de la tabla, deben caber en los 8060 bytes. |
| Bytes por clave externa | 900 | |
| Bytes por clave principal | 900 | |
| Bytes por fila | 8,060 | SQL Server admite el almacenamiento de desbordamiento de filas, lo que permite que las columnas de longitud variable se almacenen fuera de la fila. Solo se almacena una raíz de 24 bytes en el registro principal para las columnas de longitud variable insertadas de manera no consecutiva. Para obtener más información, consulte Compatibilidad con filas largas. |
| Bytes por fila en tablas optimizadas para memoria | 8,060 | Las tablas optimizadas para memoria en SQL Server 2016 (13.x) y versiones posteriores admiten el almacenamiento no consecutivo. Las columnas de longitud variable se almacenan fuera de la fila si los tamaños máximos de todas las columnas de la tabla superan los 8.060 bytes; esta acción se decide en tiempo de compilación. Solo se almacena en la fila una referencia de 8 bytes para las columnas almacenadas fuera de la fila. Para obtener más información, consulte Tamaño de tabla y fila en tablas optimizadas para memoria. |
| Bytes en el texto fuente de un procedimiento almacenado | El menor entre el tamaño del lote y 250 MB | |
Bytes por columna varchar(max), varbinary(max), xml, text o image |
2^31-1 | |
Caracteres por columna ntext o nvarchar(max) |
2^30-1 | |
| Índices agrupados por tabla | 1 | |
Columnas en GROUP BY, ORDER BY |
Limitado solo por el número de bytes | |
Columnas o expresiones en una instrucción GROUP BY WITH CUBE o GROUP BY WITH ROLLUP |
10 | |
| Columnas por clave de índice | 32 | Si la tabla contiene uno o varios índices XML, la clave de agrupación en clústeres de la tabla de usuario estará limitada a 31 columnas, ya que la columna XML se agrega a la clave de agrupación en clústeres del índice XML principal. Puede incluir columnas sin clave en un índice no agrupado para evitar la limitación de un máximo de 32 columnas de clave. Para obtener más información, consulte Creación de índices con columnas incluidas. |
| Columnas por clave externa o clave principal | 32 | |
Columnas por sentencia INSERT |
4 096 | |
Columnas por sentencia SELECT |
4 096 | |
| Columnas por tabla | 1024 | Las tablas que contienen conjuntos de columnas dispersas incluyen hasta 30 000 columnas. Consulte Uso de conjuntos de columnas. |
Columnas por instrucción UPDATE |
4 096 | Se aplican límites diferentes a Usar conjuntos de columnas. |
| Columnas por vista | 1024 | |
| Conexiones por cliente | Valor máximo de conexiones configuradas | |
| Tamaño de base de datos | 524 272 terabytes | |
| Bases de datos por instancia de SQL Server | 32 767 | |
| Grupos de archivos por base de datos | 32 767 | |
| Grupos de archivo por base de datos para datos optimizados para memoria. | 1 | |
| Archivos por base de datos | 32 767 | |
| Tamaño de archivo (datos) | 16 terabytes | |
| Tamaño de archivo (registro) | 2 terabytes | |
| Archivos de datos para datos optimizados para memoria por cada base de datos | 4\.096 en SQL Server 2014 (12.x). El límite es menos estricto en SQL Server 2016 (13.x) y versiones posteriores. | |
| Archivo delta por archivo de datos para datos optimizados para la memoria | 1 | |
| Referencias de tabla de claves externas por tabla | Salida = 253. Entrante = 10 000. |
Para consultar las restricciones, vea Crear relaciones de clave foránea. |
| Longitud del identificador (en caracteres) | 128 | |
| Instancias por equipo | 50 instancias en un servidor independiente. 25 instancias de clúster de conmutación por error cuando se usa una unidad de clúster compartida como almacenamiento. 50 instancias de clúster de conmutación por error con recursos compartidos de archivos SMB como opción de almacenamiento. |
|
| Índices por tabla optimizada para memoria | 999 a partir de SQL Server 2017 (14.x) y en Azure SQL Database. 8 en SQL Server 2016 (13.x) y SQL Server 2014 (12.x). |
|
| Bloqueos por conexión | Máximo de bloqueos por servidor | |
| Bloqueos por instancia de SQL Server | Limitado solo por la memoria | Este valor sirve para asignaciones de bloqueo estático. Los bloqueos dinámicos están limitados solo por la memoria. |
| Niveles de anidamiento de procedimientos almacenados | 32 | Si un procedimiento almacenado accede a más de 64 bases de datos, o a más de dos bases de datos de forma intercalada, se producirá un error. |
| Subconsultas anidadas | 32 | |
| Transacciones anidadas | 4 294 967 296 | |
| Niveles de activadores anidados | 32 | |
| Índices no agrupados por tabla | 999 | |
Número de expresiones distintas en la cláusula GROUP BY cuando existe alguna de las opciones siguientes: CUBE, ROLLUP, GROUPING SETS, WITH CUBE, WITH ROLLUP |
32 | |
Número de conjuntos de agrupamiento generados por los operadores de la cláusula GROUP BY |
4 096 | |
| Parámetros por procedimiento almacenado | 2,100 | |
| Parámetros por función definida por el usuario | 2,100 | |
REFERENCES por cada tabla |
253 | |
| Filas por tabla | Limitado por el espacio de almacenamiento disponible | |
| Tablas por base de datos | Limitado por el número total de objetos de una base de datos | Los objetos incluyen tablas, vistas, procedimientos almacenados, funciones definidas por el usuario, desencadenadores, reglas, valores predeterminados y restricciones. La suma de todos estos objetos en una base de datos no puede superar 2 147 483 647. |
| Particiones por tabla o índice particionado | 15,000 | |
| Estadísticas en columnas no indizadas | 30,000 | |
Tablas por cada instrucción SELECT |
Limitado solo por los recursos disponibles | |
| Desencadenadores por tabla | Limitado por el número de objetos de la base de datos | Los objetos incluyen tablas, vistas, procedimientos almacenados, funciones definidas por el usuario, desencadenadores, reglas, valores predeterminados y restricciones. La suma de todos estos objetos en una base de datos no puede superar 2 147 483 647. |
| Conexiones de usuario | 32 767 | |
| índices XML | 249 |
Objetos de aplicación de capa de datos de SQL Server
Valores máximos de diversos objetos que se probaron en las aplicaciones de capa de datos (DAC) de SQL Server.
| Objeto DAC de SQL Server | Valores máximos para SQL Server (64 bits) | Información adicional |
|---|---|---|
| Bases de datos por DAC | 1 | |
| Objetos por DAC | Se limita por el número de objetos de una base de datos o la memoria disponible. | Los tipos de objetos incluidos en el límite son usuarios, tablas, vistas, procedimientos almacenados, funciones definidas por el usuario, tipos de datos definidos por el usuario, roles de base de datos, esquemas y tipos de tabla definidos por el usuario. |
Objetos de replicación
Valores máximos de los diversos objetos definidos en la Replicación de SQL Server.
| Objeto de replicación de SQL Server | Valores máximos para SQL Server (64 bits) |
Información adicional |
|---|---|---|
| Artículos (fusionar publicación) | 2 048 | |
| Artículos (publicación de instantánea o publicación transaccional) | 32 767 | |
| Columnas de una tabla (publicación de combinación) | 246 | Si se utiliza el seguimiento de filas para la detección de conflictos (el valor predeterminado), la tabla base puede incluir un máximo de 1.024 columnas. Sin embargo, la publicación debe filtrar el artículo para que se publique un máximo de 246 columnas. Si se utiliza el seguimiento por columna, la tabla base puede incluir 246 columnas como máximo. |
| Columnas de una tabla (instantánea SQL Server o publicación transaccional) | 1,000 | La tabla base puede incluir el número máximo de columnas permitido en la base de datos de publicación de SQL Server (1024), pero las columnas se deben filtrar desde el artículo si superan el máximo especificado para el tipo de publicación. |
| Columnas de una tabla (publicación de instantáneas de Oracle o publicación transaccional de Oracle) | 995 | La tabla base puede incluir el número máximo de columnas permitido en la base de datos de publicación de SQL Server (1024), pero las columnas se deben filtrar desde el artículo si superan el máximo especificado para el tipo de publicación. |
| Bytes para una columna utilizada en un filtro de fila (publicación de combinación) | 1024 | |
| Bytes de una columna usados en un filtro de filas (publicación de instantáneas o publicación transaccional) | 8,000 |