Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Banco de dados SQL no Microsoft Fabric
Você pode usar as seguintes etapas para estimar a quantidade de espaço exigida para armazenar dados em um heap:
Especifique o número de linhas que estarão presentes na tabela:
- Num_Rows = número de linhas na tabela
Especifique o número de colunas de comprimento fixo e variável e calcule o espaço necessário para o seu armazenamento:
Calcule o espaço que cada um desses grupos de colunas ocupa dentro da linha de dados. O tamanho de uma coluna depende do tipo de dados e da especificação de comprimento.
- Num_Cols = número total de colunas (comprimento fixo e tamanho variável)
- Fixed_Data_Size = tamanho total em bytes de todas as colunas de tamanho fixo
- Num_Variable_Cols = número de colunas de tamanho variável
- Max_Var_Size = total máximo em bytes de todas as colunas de tamanho variável
Parte da linha, conhecida como bitmap nulo, é reservada para gerenciar a nulabilidade da coluna. Calcule seu tamanho:
- Null_Bitmap = 2 + ((Num_Cols + 7) / 8)
Somente a parte do inteiro dessa expressão deve ser usada. Descarte todo o restante.
Calcule o tamanho dos dados de comprimento variável:
Se houver colunas de comprimento variável na tabela, determine quanto espaço será usado para armazenar as colunas dentro da linha:
- Variable_Data_Size = 2 + (Num_Variable_Cols x 2) + Max_Var_Size
Os bytes adicionados a Max_Var_Size servem para acompanhar cada coluna de tamanho variável. Essa fórmula presume que todas as colunas de comprimento variável estão 100% completas. Se você prevê que um percentual menor do espaço de armazenamento da coluna de tamanho variável será usado, pode ajustar o valor Max_Var_Size de acordo com esse percentual para obter uma estimativa mais precisa do tamanho geral da tabela.
Note
É possível combinar colunas varchar, nvarchar, varbinaryou sql_variant que fazem com que a largura total da tabela definida exceda 8.060 bytes. O tamanho de cada uma dessas colunas ainda deve ficar dentro do limite de 8.000 bytes para uma coluna varchar, nvarchar, varbinary ou sql_variant. No entanto, suas larguras combinadas podem exceder o limite de 8.060 bytes em uma tabela.
Se não houver colunas de tamanho variável, defina Variable_Data_Size como 0.
Calcule o tamanho total da linha:
- Tamanho_da_Linha = Tamanho_dados_fixos + Tamanho_dados_variáveis + Mapa_de_nulos + 4
O valor 4 na fórmula é a sobrecarga do cabeçalho da linha de dados.
Calcular o número de linhas por página (8.096 bytes gratuitos por página):
- Rows_Per_Page = 8096 / (Row_Size + 2)
Como as linhas não abrangem páginas, o número de linhas por página deve ser arredondado para baixo até a linha inteira mais próxima. O valor 2 na fórmula é para a entrada da linha na matriz de slot da página.
Calcule o número de páginas necessário para armazenar todas as linhas:
- Num_Páginas = Num_Linhas / Linhas_Por_Página
O número de páginas estimado deve ser arredondado para cima, até a página inteira mais próxima.
Calcule a quantidade de espaço necessária para armazenar os dados no heap (8.192 bytes totais por página):
Tamanho do heap (bytes) = 8192 x Num_Pages
Esse cálculo não considera as seguintes condições:
Particionamento: a sobrecarga de espaço do particionamento é mínima, mas complexa de calcular. Não há importância em incluir.
Páginas de alocação: há pelo menos uma página IAM usada para acompanhar as páginas alocadas para um heap, mas a sobrecarga de espaço é mínima e não há nenhum algoritmo para calcular deterministicamente exatamente quantas páginas IAM serão usadas.
Valores de objetos grandes (LOB): o algoritmo para determinar exatamente quanto espaço será usado para armazenar os tipos de dados LOB, como varchar(max), varbinary(max), nvarchar(max), text, ntext, xml e image, é complexo. É suficiente apenas adicionar o tamanho médio dos valores LOB esperados e adicioná-lo ao tamanho total do heap.
Compactação: você não pode pré-calcular o tamanho de um heap compactado.
Colunas esparsas: para obter informações sobre os requisitos de espaço de colunas esparsas, consulte Usar colunas esparsas.
Conteúdo relacionado
- Heaps (tabelas sem índices clusterizados)
- Índices clusterizados e não clusterizados
- Criar um índice clusterizado
- Criar índices não clusterizados
- Estimar o tamanho de uma tabela
- Estimar o tamanho de um índice clusterizado
- Estimar o tamanho de um índice não clusterizado
- Estimar o tamanho de um banco de dados