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

Aplica-se a: simSQL Server (todas as versões compatíveis)

O artigo mostra os tamanhos e os números máximos de vários objetos definidos na SQL Server 2016 e posterior.

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

Observação

Além das informações neste artigo, você também pode encontrar os seguintes links úteis:

Objetos Mecanismo de Banco de Dados

Tamanhos e números 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 Tamanho máximo/números 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 aplicativos e o Mecanismo de Banco de Dados relacional. O tamanho de pacote padrão é 4 KB e é controlado pela opção de configuração tamanho do pacote de rede.
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 aplicativos e o Mecanismo de Banco de Dados relacional. 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 para um índice não clusterizado. Antes do SQL Server 2016, 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 no SQL Server. 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 no 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, devem 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. Esse recurso permite que o limite seja efetivamente maior do que nas versões anteriores do SQL Server. Para saber mais, confira Large Row Support (Suporte de linha grande).
Bytes por linha em tabelas com otimização de memória 8,060 Começando no SQL Server 2016 (13.x) , as tabelas com otimização de memória dão suporte ao armazenamento fora da 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 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. No SQL Server, 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). As versões posteriores do SQL Server não impõem um limite estrito como esse.
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 discos de cluster compartilhados 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 2014 (12.x) e SQL Server 2016 (13.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 do utilitário

Tamanhos e números máximos de vários objetos que foram testados no Utilitário do SQL Server .

SQL Server Objeto do utilitário Tamanho máximo/números SQL Server (64 bits)
Computadores (computadores físicos ou máquinas virtuais) por Utilitário do SQL Server 100
Instâncias do SQL Server por computador 5
Número total de instâncias do SQL Server por Utilitário do SQL Server 200*
Bancos de dados de usuários por instância do SQL Server, inclusive aplicativos da camada de dados 50
Número total de bancos de dados de usuário por Utilitário do SQL Server 1,000
Grupos de arquivos por banco de dados 1
Arquivos de dados por grupo de arquivos 1
Arquivos de log por banco de dados 1
Volumes por computador 3

* O número máximo de instâncias gerenciadas do SQL Server com suporte do Utilitário do SQL Server pode variar com base na configuração de hardware do servidor. Para obter informações de introdução, consulte Recursos e tarefas do utilitário do SQL Server. SQL Server não está disponível em todas as edições do SQL Server. Para obter uma lista de recursos com suporte nas edições do SQL Server, confira Recursos com suporte nas edições do SQL Server 2019, Recursos com suporte nas edições do SQL Server 2017 ou Recursos com suporte nas edições do SQL Server 2016.

SQL Server Objetos de aplicativo da camada de dados

Tamanhos e números máximos de vários objetos que foram testados nos DAC (aplicativos de camada de dados) do SQL Server .

SQL Server DAC Tamanho máximo/números SQL Server (64 bits)
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

Tamanhos e números máximos de vários objetos definidos na Replicação do SQL Server .

SQL Server Objeto de replicação Tamanhos/números máximos do SQL Server (64 bits)
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
Colunas em uma tabela** (instantâneo do SQL Server ou publicação transacional) 1,000
Colunas em uma tabela** (instantâneo do Oracle ou publicação transacional) 995
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

*Se o acompanhamento de linha for usado para detecção de conflitos (o padrão), a tabela de base poderá incluir no máximo 1.024 colunas, mas as colunas deverão ser filtradas do artigo de modo que seja publicado no máximo 246 colunas. Se o rastreamento de coluna for usado, a tabela base poderá incluir no máximo 246 colunas.

**A tabela base pode incluir o número máximo de colunas permitidas no banco de dados de publicação (1.024 para SQL Server), mas as colunas devem ser filtradas do artigo se excederem o máximo especificado para o tipo de publicação.

Confira também

Recursos e tarefas do Utilitário do SQL Server