Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Base de dados SQL no Microsoft Fabric
Pode seguir os passos seguintes para estimar a quantidade de espaço necessário 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 de comprimento 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 comprimento variável)
- Fixed_Data_Size = tamanho total de bytes de todas as colunas de comprimento fixo
- Num_Variable_Cols = número de colunas de comprimento variável
- Max_Var_Size = tamanho máximo total de bytes de todas as colunas de comprimento variável
Parte da linha, conhecida como bitmap nulo, é reservada para gerenciar a anulabilidade da coluna. Calcule o seu tamanho:
- Null_Bitmap = 2 + ((Num_Cols + 7) / 8)
Apenas a parte inteira desta expressão deve ser usada. Elimine qualquer resto.
Calcule o tamanho dos dados de comprimento variável:
Se houver colunas de comprimento variável na tabela, determine quanto espaço é 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 são para controlar cada coluna de comprimento variável. Esta fórmula assume que todas as colunas de comprimento variável estão 100% cheias. Se você antecipar que uma porcentagem menor do espaço de armazenamento da coluna de comprimento variável será usada, poderá ajustar o valor Max_Var_Size por essa porcentagem para obter uma estimativa mais precisa do tamanho geral da tabela.
Note
Você pode combinar varchar, nvarchar, varbinaryou sql_variant colunas que fazem com que a largura total da tabela definida exceda 8.060 bytes. O comprimento de cada uma dessas colunas ainda deve estar dentro do limite de 8.000 bytes para uma coluna varchar, nvarchar, varbinaryou sql_variant. No entanto, suas larguras combinadas podem exceder o limite de 8.060 bytes em uma tabela.
Se não houver colunas de comprimento variável, defina Variable_Data_Size como 0.
Calcule o tamanho total da linha:
- Tamanho_da_Linha = Tamanho_Fixo_de_Dados + Tamanho_Variável_de_Dados + Mapa_de_Nulos + 4
O valor 4 na fórmula é a sobrecarga do cabeçalho da linha de dados.
Calcule o número de linhas por página (8.096 bytes livres por página):
- Linhas_Por_Página = 8096 / (Tamanho_Da_Linha + 2)
Como as linhas não abrangem páginas, o número de linhas por página deve ser arredondado para baixo para a linha inteira mais próxima. O valor 2 na fórmula é para a entrada da linha na matriz de slots da página.
Calcule o número de páginas necessárias para armazenar todas as linhas:
- Núm_Páginas = Núm_Linhas / Linhas_Por_Página
O número estimado de páginas deve ser arredondado para 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 da pilha (bytes) = 8192 x Num_Pages
Este 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 é importante incluir.
Páginas de alocação: há pelo menos uma página do IAM usada para rastrear as páginas alocadas a um heap, mas a sobrecarga de espaço é mínima e não há algoritmo para calcular deterministicamente exatamente quantas páginas do IAM serão usadas.
Valores de objeto grande (LOB): O algoritmo para determinar exatamente quanto espaço será usado para armazenar os tipos de dados LOB varchar(max), varbinary(max), nvarchar(max), text, ntextxml e image values é complexo. É suficiente apenas adicionar o tamanho médio dos valores de LOB esperados e adicioná-lo ao tamanho total da pilha.
Compressão: Não é possível precalcular o tamanho de um heap comprimido.
Colunas esparsas: para obter informações sobre os requisitos de espaço de colunas esparsas, consulte Usar colunas esparsas.