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
O espaço em disco é uma consideração importante ao criar, recriar ou cancelar índices. Um espaço em disco inadequado pode degradar o desempenho ou até mesmo provocar falha na operação de índice. Este artigo fornece informações gerais que podem ajudá-lo a determinar a quantidade de espaço em disco necessária para operações de DDL (linguagem de definição de dados de índice).
Operações de índice que não exigem espaço em disco adicional
As operações de índice que não requerem nenhum espaço adicional em disco são:
ALTER INDEX REORGANIZE; no entanto, o espaço de log é necessário.DROP INDEXao descartar um índice não-clusterizado.DROP INDEXquando você está removendo um índice clusterizado fora de linha sem especificar a cláusulaMOVE TOe não existem índices não clusterizados.CREATE TABLE(PRIMARY KEYouUNIQUErestrições)
Operações de índice que exigem espaço em disco adicional
Todas as outras operações de índice DDL exigem espaço adicional temporário em disco para serem utilizadas na operação, e espaço permanente em disco para armazenar a nova estrutura ou estruturas de índice.
Quando uma nova estrutura de índice é criada, o espaço em disco de ambas as estruturas, a antiga (origem) e a nova (destino), é necessário para os 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.
As seguintes operações de índice DDL criam novas estruturas de índice e exigem espaço adicional em disco:
CREATE INDEXCREATE INDEX WITH DROP_EXISTINGALTER INDEX REBUILD-
ALTER TABLE ADD CONSTRAINT(PRIMARY KEYouUNIQUE) -
ALTER TABLE DROP CONSTRAINT(PRIMARY KEYouUNIQUE) quando a restrição é baseada em um índice clusterizado -
DROP INDEX MOVE TO(Aplica-se somente a índices clusterizados.)
Espaço temporário em disco para classificação
Além do espaço em disco necessário para as estruturas de origem e de destino, o espaço em disco temporário é necessário para classificação, a menos que o otimizador de consulta encontre um plano de execução que não exija classificação.
Quando a classificação for necessária, a classificação será de um índice novo por vez. Por exemplo, quando você recria um índice clusterizado e índices não clusterizados associados dentro de uma única instrução, os índices são classificados um após o outro. Portanto, o espaço em disco temporário adicional, exigido apenas para classificar, terá que ser tão grande quanto o maior índice da operação. Esse, quase sempre, é o índice clusterizado.
Se a opção SORT_IN_TEMPDB estiver definida como ON, o maior índice deverá caber em tempdb. Embora essa opção aumente a quantidade de espaço em disco temporário usada para criar um índice, ela pode reduzir o tempo necessário para criar um índice quando tempdb estiver em um conjunto de discos diferente do banco de dados do usuário.
Se SORT_IN_TEMPDB for definido como OFF (o padrão) cada índice, incluindo índices particionados, será classificado em seu espaço em disco de destino; e somente o espaço em disco para as novas estruturas de índice será necessário.
Para obter um exemplo de cálculo de espaço em disco, consulte o exemplo de espaço em disco Index.
Espaço em disco temporário para operações de índice online
Quando se executam operações de índice online é necessário espaço temporário adicional em disco.
Se um índice clusterizado for criado, recriado, ou cancelado online, um índice não clusterizado temporário será criado para mapear indicadores antigos para os indicadores novos. Se a opção SORT_IN_TEMPDB estiver definida como ON, esse índice temporário será criado em tempdb. Se SORT_IN_TEMPDB estiver definido como OFF, o mesmo grupo de arquivos ou esquema de partição que o índice de destino será usado. O índice temporário de mapeamento contém um registro para cada linha da tabela, e seus conteúdos são a união das colunas de indicadores antigas e novas, incluindo indicadores de exclusividade, mais identificadores de registro e incluindo apenas uma cópia única de todas as colunas usadas em ambos os indicadores. Para obter mais informações sobre operações de índice online, consulte Executar operações de índice online.
Observação
A SORT_IN_TEMPDB opção não pode ser definida nas DROP INDEX instruções. O índice temporário de mapeamento é sempre criado no mesmo grupo de arquivos ou esquema de partição que o índice de destino.
As operações de índice online utilizam o controle de versão de linha para isolar a operação de índice dos efeitos das modificações feitas por outras transações. Isso evita a necessidade de solicitar bloqueios de compartilhamento de linhas já lidas. Operações simultâneas de atualização e exclusão de usuário durante operações de índice online exigem espaço para registros de versão em tempdb. Para obter mais informações, consulte Executar operações de índice online .
Tarefas relacionadas
- Exemplo de espaço de índice em disco
- Espaço em disco para o log de transações em operações de índice
- 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 heap