Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
O espaço em disco é uma consideração importante quando você cria, reconstrói ou descarta índices. Espaço em disco inadequado pode degradar o desempenho ou até mesmo fazer com que a operação de índice falhe. Este artigo fornece informações gerais que podem ajudá-lo a determinar a quantidade de espaço em disco necessária para operações DDL (linguagem de definição de dados de índice).
Operações de índice que não exigem espaço em disco adicional
As seguintes operações de índice não requerem espaço em disco adicional:
ALTER INDEX REORGANIZE; no entanto, o espaço de log é necessário.DROP INDEXquando estás descartando um índice não agrupado.DROP INDEXao descartar um índice agrupado offline sem especificar a cláusulaMOVE TOe quando os índices não agrupados não existem.CREATE TABLE(PRIMARY KEYouUNIQUErestrições)
Operações de índice que exigem espaço em disco adicional
Todas as outras operações DDL de índice requerem espaço em disco temporário adicional para usar durante a operação e espaço em disco permanente para armazenar a nova estrutura ou estruturas de índice.
Quando uma nova estrutura de índice é criada, o espaço em disco para as estruturas antigas (origem) e novas (destino) é necessário em seus arquivos e grupos de arquivos apropriados. A estrutura antiga não é desalocada até que a transação de criação de índice seja consumada.
As seguintes operações DDL de índice criam novas estruturas de índice e requerem espaço em disco adicional:
CREATE INDEXCREATE INDEX WITH DROP_EXISTINGALTER INDEX REBUILD-
ALTER TABLE ADD CONSTRAINT(PRIMARY KEYouUNIQUE) -
ALTER TABLE DROP CONSTRAINTPRIMARY KEY( ouUNIQUE) quando a restrição se baseia num índice agrupado -
DROP INDEX MOVE TO(Aplica-se apenas a índices clusterizados.)
Espaço em disco temporário para classificação
Além do espaço em disco necessário para as estruturas de origem e destino, é necessário espaço em disco temporário para classificação, a menos que o otimizador de consulta encontre um plano de execução que não exija classificação.
Se a classificação for necessária, a classificação ocorrerá um novo índice de cada vez. Por exemplo, quando você recria um índice clusterizado e índices não clusterizados associados em uma única instrução, os índices são classificados um após o outro. Portanto, o espaço em disco temporário adicional que é necessário para classificar só tem que ser tão grande quanto o maior índice na operação. Este é quase sempre o índice agrupado.
Se a SORT_IN_TEMPDB opção estiver definida como ON, o maior índice deve caber em tempdb. Embora essa opção aumente a quantidade de espaço em disco temporário usado para criar um índice, ela pode reduzir o tempo necessário para criar um índice quando tempdb está em um conjunto de discos diferente do banco de dados do usuário.
Se SORT_IN_TEMPDB estiver definido como OFF (o padrão), cada índice, incluindo índices particionados, será classificado em seu espaço em disco de destino e apenas 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 Exemplo de espaço em disco de índice.
Espaço em disco temporário para operações de índice online
Quando você executa operações de índice on-line, espaço em disco temporário adicional é necessário.
Se um índice clusterizado for criado, reconstruído ou descartado online, um índice temporário não clusterizado será criado para mapear marcadores antigos para novos marcadores. Se a SORT_IN_TEMPDB opção 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 é usado. O índice de mapeamento temporário contém um registro para cada linha da tabela, e seu conteúdo é a união das colunas de marcadores antigas e novas, incluindo uniqueifiers e identificadores de registro e incluindo apenas uma única cópia de qualquer coluna usada em ambos os marcadores. Para obter mais informações sobre operações de índice online, consulte Executar operações de índice online.
Observação
A opção SORT_IN_TEMPDB não pode ser definida para instruções DROP INDEX. O índice de mapeamento temporário é 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 versionamento de linhas para isolar a operação de índice dos efeitos de modificações feitas por outras transações. Isso evita a necessidade de solicitar bloqueios de compartilhamento em linhas que foram lidas. As operações simultâneas de atualização e exclusão de usuários durante operações de índice online exigem espaço para registros de versão no tempdb. Para obter mais informações, consulte Executar operações de índice online .
Tarefas relacionadas
- Exemplo de índice de espaço em disco
- Espaço em disco do log de transações para operações de índice
- Estimar o tamanho de uma tabela
- Estimar o tamanho de um índice agrupado
- Estimar o tamanho de um índice não agrupado
- Estimar o tamanho de uma heap