Especificações de capacidade máxima do SQL Server

Aplica-se a:SQL Server

O artigo mostra os tamanhos e os números máximos de vários objetos definidos na SQL Server 2016 (13.x) e posterior. Se você quiser exibir os limites de edição, confira Limites de capacidade de computação por edição do SQL Server.

Para SQL Server 2014 (12.x), confira Especificações de capacidade máxima para o SQL Server 2014.

Objetos Mecanismo de Banco de Dados

Valores máximos de vários objetos definidos nos bancos de dados do SQL Server ou referenciados em instruções Transact-SQL.

Objeto do SQL Server Mecanismo de Banco de Dados Valores máximos para SQL Server (64 bits) Informações adicionais
Tamanho do lote 65.536 * (Tamanho do pacote de rede) O tamanho do pacote de rede é o tamanho dos pacotes do protocolo TDS usados para comunicação entre o Mecanismo de Banco de Dados relacional e os aplicativos. O tamanho do pacote padrão é de 4 KB. O tamanho do pacote de rede controla essa opção de configuração.
Comprimento em bytes de uma cadeia de caracteres que contém instruções Transact-SQL (tamanho do lote) 65.536 * (Tamanho do pacote de rede) O tamanho do pacote de rede é o tamanho dos pacotes do protocolo TDS usados para comunicação entre o Mecanismo de Banco de Dados relacional e os aplicativos. O tamanho de pacote padrão é 4 KB e é controlado pela opção de configuração tamanho do pacote de rede.
Bytes por coluna de cadeia de caracteres curta 8,000
Bytes por GROUP BY, ORDER BY 8,060
Bytes por chave de índice 900 bytes para um índice clusterizado. 1.700 bytes para um índice não clusterizado. No SQL Server 2014 (12.x) e anteriores, todas as versões davam suporte a 900 bytes para todos os tipos de índice. O número máximo de bytes em qualquer chave de índice clusterizado não pode exceder 900. Para uma chave de índice não clusterizado, o máximo é 1.700 bytes.

Você pode definir uma chave usando colunas de comprimento variável cujos tamanhos máximos se acumulam até mais do que o limite. No entanto, os tamanhos combinados dos dados nessas colunas nunca pode exceder o limite.

Em um índice não clusterizado, você pode incluir colunas adicionais não chave e não contam em relação ao limite de tamanho da chave. As colunas não chave podem ajudar algumas consultas a ter um melhor desempenho.
Bytes por chave de índice para tabelas com otimização de memória 2.500 bytes para um índice não clusterizado. Nenhum limite para um índice de hash, desde que todas as chaves de índice caibam em linha. Em uma tabela com otimização de memória, um índice não clusterizado não pode ter colunas de chave cujos tamanhos máximos de declarados excedem 2.500 bytes. É irrelevante se os dados reais nas colunas de chave são menores que os tamanhos máximos declarados.

Para uma chave de índice de hash, não há um limite fixo para o tamanho.

Para índices em tabelas com otimização de memória, não há nenhum conceito de colunas incluídas, pois inerentemente todos os índices abrangem todas as colunas.

Para uma tabela com otimização de memória, mesmo que o tamanho da linha seja 8.060 bytes, algumas colunas de comprimento variável podem ser fisicamente armazenadas fora desses 8.060 bytes. No entanto, os tamanhos máximos declarados de todas as colunas de chave para todos os índices em uma tabela, além de quaisquer colunas de comprimento fixo adicionais, precisam caber nos 8.060 bytes.
Bytes por chave estrangeira 900
Bytes por chave primária 900
Bytes por linha 8,060 SQL Server dá suporte ao armazenamento de estouro de linha, o que permite que colunas de comprimento variável sejam enviadas por push para fora da linha. Somente uma raiz de 24 bytes é armazenada no registro principal para colunas de comprimento variável empurradas para fora da linha. Para saber mais, confira Large Row Support (Suporte de linha grande).
Bytes por linha em tabelas com otimização de memória 8,060 Tabelas com otimização de memória no SQL Server 2016 (13.x) e posteriores dão suporte ao armazenamento fora de linha. Colunas de comprimento variável serão enviadas por push para fora da linha se os tamanhos máximos de todas as colunas na tabela excederem 8.060 bytes. Esta ação é uma decisão de tempo de compilação. Apenas uma referência de 8 bytes é armazenada na linha para colunas armazenadas fora de linha. Para obter mais informações, consulte Tamanho da tabela e da linha em tabelas com otimização de memória.
Bytes em texto de fonte de um procedimento armazenado Menor que o tamanho do lote ou 250 MB
Bytes por coluna varchar(max), varbinary(max), xml, text ou image 2^31-1
Caracteres por coluna ntext ou nvarchar(max) 2^30-1
Índices clusterizados por tabela 1
Colunas em GROUP BY, ORDER BY Limitado somente pelo número de bytes
Colunas ou expressões em uma instrução GROUP BY WITH CUBE ou GROUP BY WITH ROLLUP 10
Colunas por chave de índice 32 Se a tabela contiver um ou mais índices XML, a chave de clustering da tabela do usuário será limitada a 31 colunas porque a coluna XML é adicionada à chave de clustering do índice XML primário. Você pode incluir colunas não chave em um índice não clusterizado para evitar a limitação de um máximo de 32 colunas de chave. Para obter mais informações, consulte Create Indexes with Included Columns.
Colunas por chave estrangeira ou chave primária 32
Colunas por instrução INSERT 4\.096
Colunas por instrução SELECT 4\.096
Colunas por tabela 1\.024 As tabelas que incluem conjuntos de colunas esparsas incluem até 30.000 colunas. Confira Conjuntos de colunas esparsas.
Colunas por instrução UPDATE 4\.096 Diferentes limites se aplicam aos conjuntos de colunas esparsas.
Colunas por exibição 1\.024
Conexões por cliente Valor máximo de conexões configuradas
Tamanho do banco de dados 524.272 terabytes
Bancos de dados por instância do SQL Server 32.767
Grupos de arquivos por banco de dados 32.767
Grupos de arquivo por banco de dados para dados com otimização de memória. 1
Arquivos por banco de dados 32.767
Tamanho de arquivo (dados) 16 terabytes
Tamanho de arquivo (log) 2 terabytes
Arquivos de dados para dados com otimização de memória por banco de dados 4\.096 no SQL Server 2014 (12.x). O limite é menos estrito no SQL Server 2016 (13.x) e posterior.
Arquivo delta por arquivo de dados para dados com otimização de memória 1
Referências de tabela de chave estrangeira por tabela Saída = 253.
Entrada= 10.000.
Para restrições, consulte Create Foreign Key Relationships.
Comprimento de identificador (em caracteres) 128
Instâncias por computador 50 instâncias em um servidor autônomo.

25 instâncias de cluster de failover ao usar uma unidade de cluster compartilhado como armazenamento.

50 instâncias de cluster de failover com compartilhamentos de arquivos SMB como a opção de armazenamento.
Índices por tabela com otimização de memória 999 a partir do SQL Server 2017 (14.x) e no Banco de Dados SQL do Azure.

8 no SQL Server 2016 (13.x) e no SQL Server 2014 (12.x).
Bloqueios por conexão Máximo de bloqueios por servidor
Bloqueios por instância do SQL Server Limitado somente por memória Esse valor é para alocação de bloqueio estático. Os bloqueios dinâmicos são limitados somente por memória.
Níveis aninhados de procedimento armazenado 32 Se um procedimento armazenado acessar mais de 64 bancos de dados ou mais de dois bancos de dados em intercalação, você receberá um erro.
Subconsultas aninhadas 32
Transações aninhadas 4\.294.967.296
Níveis aninhados de gatilho 32
Índices não clusterizados por tabela 999
Número de expressões distintas na cláusula GROUP BY quando qualquer um dos seguintes estiver presente: CUBE, ROLLUP, GROUPING SETS, WITH CUBE, WITH ROLLUP 32
Número de conjuntos de agrupamentos gerados por operadores na cláusula GROUP BY 4\.096
Parâmetros por procedimento armazenado 2,100
Parâmetros por função definida pelo usuário 2,100
REFERENCES por tabela 253
Linhas por tabela Limitado pelo armazenamento disponível
Tabelas por banco de dados Limitado pelo número total de objetos em um banco de dados Os objetos incluem tabelas, exibições, procedimentos armazenados, funções definidas pelo usuário, gatilhos, regras, padrões e restrições. A soma do número de todos os objetos em um banco de dados não pode exceder 2.147.483.647.
Partições por tabela ou índice particionado 15,000
Estatísticas em colunas não indexadas 30,000
Tabelas conforme a instrução SELECT Limitado apenas pelos recursos disponíveis
Gatilhos por tabela Limitado pelo número de objetos em um banco de dados Os objetos incluem tabelas, exibições, procedimentos armazenados, funções definidas pelo usuário, gatilhos, regras, padrões e restrições. A soma do número de todos os objetos em um banco de dados não pode exceder 2.147.483.647.
Conexões de usuário 32.767
índices XML 249

SQL Server Objetos de aplicativo da camada de dados

Valores máximos de vários objetos que foram testados nos DAC (aplicativos de camada de dados) do SQL Server.

SQL Server DAC Valores máximos para SQL Server (64 bits) Informações adicionais
Bancos de dados por DAC 1
Objetos por DAC Limitado pelo número de objetos em um banco de dados ou pela memória disponível. Os tipos de objetos incluídos no limite são usuários, tabelas, exibições, procedimentos armazenados, funções definidas pelo usuário, tipo de dados definido pelo usuário, funções de banco de dados, esquemas e tipos de tabela definidos pelo usuário.

Objetos de replicação

Valores máximos de vários objetos definidos na Replicação do SQL Server.

SQL Server Objeto de replicação Valores máximos para SQL Server
(64 bits)
Informações adicionais
Artigos (publicação de mesclagem) 2\.048
Artigos (publicação de instantâneo ou transacional) 32.767
Colunas em uma tabela (publicação de mesclagem) 246 Se o rastreamento de linha for usado para detecção de conflito (o padrão), a tabela base poderá incluir no máximo 1.024 colunas. No entanto, a publicação precisa filtrar o artigo para que no máximo 246 colunas sejam publicadas. Se o rastreamento de coluna for usado, a tabela base poderá incluir no máximo 246 colunas.
Colunas em uma tabela (instantâneo do SQL Server ou publicação transacional) 1,000 A tabela base pode incluir o número máximo de colunas permitidas no banco de dados de publicação do SQL Server (1.024), mas as colunas precisarão ser filtradas do artigo se excederem o máximo especificado para o tipo de publicação.
Colunas em uma tabela (instantâneo do Oracle ou publicação transacional) 995 A tabela base pode incluir o número máximo de colunas permitidas no banco de dados de publicação do SQL Server (1.024), mas as colunas precisarão ser filtradas do artigo se excederem o máximo especificado para o tipo de publicação.
Bytes para uma coluna usada em um filtro de linha (publicação de mesclagem) 1\.024
Bytes para uma coluna usada em um filtro de linha (publicação de instantâneo ou transacional) 8,000

Confira também