Especificaciones de capacidad máxima para SQL Server

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 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 TDS que se usan para la comunicación entre el Motor de base de datos relacional y las aplicaciones. El valor predeterminado es 4 KB. El tamaño del paquete de red controla esta opción de configuración.
Longitud de 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 tamaño de los paquetes de flujo TDS que se usan 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 cadenas cortas 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 fila, lo que habilita la inserción de columnas de longitud variable de manera no consecutiva. 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 insertan de manera no consecutiva si el tamaño máximo de todas las columnas de la tabla supera los 8060 bytes; esta acción es una decisión en tiempo de compilación. Solo se almacena una referencia de 8 bytes de forma consecutiva para las columnas almacenadas de forma no consecutiva. Para obtener más información, vea Tamaño de tabla y fila de las tablas con optimización para memoria.
Bytes en texto de origen de un procedimiento almacenado El menor del tamaño del lote o 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 clúster 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 más información, consulte Create Indexes with Included Columns.
Columnas por clave externa o clave principal 32
Columnas por instrucción INSERT 4 096
Columnas por instrucción SELECT 4 096
Columnas por tabla 1024 Las tablas que contienen conjuntos de columnas dispersas incluyen hasta 30 000 columnas. Vea Conjuntos de columnas dispersas.
Columnas por instrucción UPDATE 4 096 En los conjuntos de columnas dispersas se aplican distintos límites.
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 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 memoria 1
Referencias de tabla de claves externas por tabla Saliente = 253.
Entrante = 10 000.
Para ver las restricciones, vea Create Foreign Key Relationships.
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 procedimientos almacenados anidados 32 Si un procedimiento almacenado accede a más de 64 bases de datos o a más de 2 bases de datos en intercalación, recibirá un error.
Subconsultas anidadas 32
Transacciones anidadas 4 294 967 296
Niveles de desencadenadores anidados 32
Índices no clúster 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 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 con particiones 15,000
Estadísticas en columnas no indizadas 30,000
Tablas por 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.

SQL Server Objeto DAC 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.

SQL Server Objeto de replicación Valores máximos para SQL Server
(64 bits)
Información adicional
Artículos (publicación de combinación) 2 048
Artículos (publicación de instantáneas o transaccional) 32 767
Columnas de una tabla (publicación de mezcla) 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 o 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 para una columna utilizada en un filtro de fila (publicación de instantáneas o transaccional) 8,000