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
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Banco de dados SQL no Microsoft Fabric
Sempre que um índice é criado, recriado, ou cancelado, o espaço em disco tanto para a velha (fonte) quanto para a nova (destino) estrutura é necessário em seus arquivos e grupos de arquivos apropriados. A estrutura antiga não é desalocada até que a transação para a criação do índice seja confirmada. Espaço em disco temporário adicional para operações de classificação também pode ser necessário. Para obter mais informações, consulte os requisitos de espaço em disco para operações de DDL de índice.
Neste exemplo, os requisitos de espaço em disco para criar um índice clusterizado são determinados.
Suponha que as condições a seguir são verdadeiras antes de criar o índice cluster:
- A tabela existente (heap) contém 1 milhão de linhas. Cada linha tem 200 bytes de comprimento.
- O índice não clusterizados A contém 1 milhão de linhas. Cada linha tem 50 bytes de comprimento.
- O índice não clusterizados B contém 1 milhão de linhas. Cada linha tem 80 bytes de comprimento.
- A opção index create memory é definida como 2 MB.
- Um valor de fator de preenchimento de 80 é usado para todos os índices existentes e novos. Isto significa que as páginas estão preenchidas em 80 por cento.
Observação
Como resultado da criação de um índice cluster, os dois índices não clusterizados devem ser reconstruídos para substituir o indicador de linha com a nova chave de índice clusterizado.
Cálculos de espaço em disco para uma operação de índice offline
Nos passos a seguir, são calculados tanto o espaço em disco temporário a ser usado durante a operação de índice quanto o espaço em disco permanente para armazenar novos índices. Os cálculos mostrados são aproximados; os resultados são arredondados e consideram apenas o tamanho do nível folha de índice. O til (~) é usado para indicar cálculos aproximados.
Determine o tamanho das estruturas de origem.
- Heap: 1 milhão * 200 bytes ~ 200 MB
- Índice não clusterizado A: 1 milhão * 50 bytes / 80% ~ 63 MB
- Índice não clusterizado B: 1 milhão * 80 bytes / 80% ~ 100 MB
Tamanho total de estruturas existentes: 363 MB
Determine o tamanho das estruturas de índice de destino. Suponha que a nova chave clusterizada tenha 24 bytes de tamanho, incluindo um uniqueifier. O indicador de linha (8 bytes de comprimento) nos dois índices não clusterizados será substituído por esta chave clusterizada.
Índice clusterizado: 1 milhão * 200 bytes / 80% ~ 250 MB
Índice não clusterizado A: 1 milhão * (50 - 8 + 24) bytes / 80% ~ 83 MB
Índice não clusterizado B: 1 milhão * (80 - 8 + 24) bytes /80% ~ 120 MB
Tamanho total de novas estruturas: 453 MB
O espaço em disco total necessário para dar suporte às estruturas de origem e de destino durante a operação de índice é de 816 MB (363 + 453). O espaço atualmente alocado às estruturas de fonte será desalocado depois que a operação de índice estiver confirmada.
Determine o espaço em disco temporário para classificação.
Os requisitos de espaço são apresentados para a classificação em
tempdb(comSORT_IN_TEMPDBdefinido comoON) e para a classificação no local de destino (comSORT_IN_TEMPDBdefinido comoOFF).Quando
SORT_IN_TEMPDBestá definido comoON,tempdbdeve ter espaço em disco suficiente para manter o maior índice (1 milhão * 200 bytes ~ 200 MB). O fator de preenchimento não é considerado na operação de classificação.O espaço adicional em disco (na localização
) deve ser igual ao valor memória de criação do índice = 2 MB. Tamanho total do espaço em disco temporário com
SORT_IN_TEMPDBdefinido comoON~ 202 MB.Quando
SORT_IN_TEMPDBé definido comoOFF(padrão), os 250 MB de espaço em disco já considerados para o novo índice na etapa 2 são usados para classificação.Espaço em disco adicional (no local de destino) igual ao valor de criação de memória do índice = 2 MB.
Tamanho total do espaço em disco temporário com
SORT_IN_TEMPDBdefinido comoOFF= 2 MB.
Usando tempdbum total de 1018 MB (816 + 202) seria necessário para criar os índices clusterizados e não clusterizados. Embora o uso tempdb aumente a quantidade de espaço em disco temporário usado para criar um índice, isso pode reduzir o tempo necessário para criar um índice quando tempdb estiver em um conjunto diferente de discos do que o banco de dados do usuário. Para obter mais informações sobre como usar tempdb, consulte SORT_IN_TEMPDB Option For Indexes.
Sem usar tempdb, um total de 818 MB (816 + 2) seriam necessários para criar os índices clusterizados e não clusterizados.
Cálculos de espaço em disco para uma operação de índice clusterizado online
Quando você cria, cancela ou recria um índice clusterizados online, é necessário espaço adicional em disco para criar e manter um índice de mapeamento temporário. Este índice de mapeamento temporário contém um registro para cada linha na tabela e seu conteúdo é a união das colunas de indicadores velhas e novas.
Para calcular o espaço em disco precisado para uma operação de índice clusterizado online, siga os passos mostrados para uma operação de índice offline, e acrescente esses resultados aos resultados do passo seguinte.
Determine espaço para o índice de mapeamento temporário.
Neste exemplo, o indicador antigo é a fila ID (RID) do heap (8 bytes) e o novo indicador é a chave de clusterização (24 bytes incluindo um uniqueifier). Não há nenhuma coluna sobreposta entre os indicadores novos e velhos.
Tamanho de índice de mapeamento temporário = 1 milhão * (8 bytes + 24 bytes) / 80% ~ 40 MB.
Esse espaço em disco deve ser adicionado ao espaço em disco necessário no local de destino se
SORT_IN_TEMPDBestiver definido comoOFF, ou setempdbSORT_IN_TEMPDBfor definido comoON.
Para obter mais informações sobre o índice de mapeamento temporário, consulte requisitos de espaço em disco para operações DDL de índice.
Resumo do espaço em disco
A tabela a seguir resume os resultados dos cálculos de espaço em disco.
| Operação de índice | Os requisitos de espaço em disco para os locais das seguintes estruturas |
|---|---|
Operação de índice offline com SORT_IN_TEMPDB = ON |
Espaço total durante a operação: 1.018 MB - Tabela e índices existentes: 363 MB 1 - tempdb: 202 MB 1- Novos índices: 453 MB Espaço total necessário após a operação: 453 MB |
Operação de índice offline com SORT_IN_TEMPDB = OFF |
Espaço total durante a operação: 816 MB - Tabela e índices existentes: 363 MB 1 - Novos índices: 453 MB Espaço total necessário após a operação: 453 MB |
Operação de índice online com SORT_IN_TEMPDB = ON |
Espaço total durante a operação: 1.058 MB - Tabela e índices existentes: 363 MB 1 - tempdb (inclui índice de mapeamento): 242 MB*- Novos índices: 453 MB Espaço total necessário após a operação: 453 MB |
Operação de índice online com SORT_IN_TEMPDB = OFF |
Espaço total durante a operação: 856 MB - Tabela e índices existentes: 363 MB 1 - Índice de mapeamento temporário: 40 MB 1 - Novos índices: 453 MB Espaço total necessário após a operação: 453 MB |
1 Esse espaço é desalocado depois que a operação de índice é confirmada.
Este exemplo não considera nenhum espaço em tempdb disco temporário adicional necessário para registros de versão criados por operações simultâneas de atualização e exclusão de usuário.