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 Managed Instance
Recria um ou mais índices para uma tabela no banco de dados especificado.
Importante
Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso. Em vez disso, use ALTER INDEX.
Aplica-se a: SQL Server 2008 (10.0.x) e versões posteriores.
Transact-SQL convenções de sintaxe
Sintaxe
DBCC DBREINDEX
(
table_name
[ , index_name [ , fillfactor ] ]
)
[ WITH NO_INFOMSGS ]
Argumentos
table_name
O nome da tabela que contém o índice ou índices especificados a serem reconstruídos. Os nomes das tabelas devem seguir as regras para identificadores.
index_name
O nome do índice a ser reconstruído. Os nomes dos índices devem estar em conformidade com as regras relativas aos identificadores. Se index_name for especificado, table_name deve ser especificado. Se index_name não for especificado ou estiver ' '
, todos os índices da tabela serão reconstruídos.
de fator de preenchimento
A porcentagem de espaço em cada página de índice para armazenar dados quando o índice é criado ou reconstruído. de fator de preenchimento substitui o fator de preenchimento quando o índice foi criado, tornando-se o novo padrão para o índice e para quaisquer outros índices não clusterizados reconstruídos, porque um índice clusterizado é reconstruído.
Quando fator de preenchimento é 0, DBCC DBREINDEX
usa o valor do fator de preenchimento especificado pela última vez para o índice. Esse valor é armazenado no sys.indexes
exibição de catálogo.
Se de fator de preenchimento for especificado, table_name e index_name deverão ser especificados. Se fator de preenchimento não for especificado, o fator de preenchimento padrão, 100, será usado. Para obter mais informações, consulte Especificar fator de preenchimento para um índice.
COM NO_INFOMSGS
Suprime todas as mensagens informativas com níveis de gravidade de 0 a 10.
Comentários
DBCC DBREINDEX
recria um índice para uma tabela ou todos os índices definidos para uma tabela. Ao permitir que um índice seja reconstruído dinamicamente, os índices que impõem restrições de CHAVE PRIMÁRIA ou EXCLUSIVA podem ser reconstruídos sem ter que descartar e recriar essas restrições. Isso significa que um índice pode ser reconstruído sem conhecer a estrutura de uma tabela ou suas restrições. Isso pode ocorrer após uma cópia em massa dos dados na tabela.
DBCC DBREINDEX
pode reconstruir todos os índices de uma tabela em uma instrução. Isso é mais fácil do que codificar várias DROP INDEX
e CREATE INDEX
instruções. Como o trabalho é realizado por uma declaração, DBCC DBREINDEX
é automaticamente atômica, enquanto DROP INDEX
individuais e CREATE INDEX
declarações devem ser incluídas em uma transação para serem atômicas. Além disso, DBCC DBREINDEX
oferece mais otimizações do que DROP INDEX
individuais e declarações CREATE INDEX
.
Ao contrário DBCC INDEXDEFRAG
, ou ALTER INDEX
com a opção REORGANIZE
, DBCC DBREINDEX
é uma operação offline. Se um índice não clusterizado estiver sendo reconstruído, um bloqueio compartilhado será mantido na tabela em questão durante a operação. Isso evita modificações na tabela. Se o índice clusterizado estiver sendo reconstruído, um bloqueio de tabela exclusivo será mantido. Isso impede qualquer acesso à tabela, tornando a tabela offline de forma eficaz. Para executar uma reconstrução de índice online ou para controlar o grau de paralelismo durante a operação de reconstrução de índice, use a instrução ALTER INDEX REBUILD
com a opção ONLINE
.
Para obter mais informações sobre como selecionar um método para reconstruir ou reorganizar um índice, consulte Reorganizar e reconstruir índices.
Restrições
DBCC DBREINDEX
não é suportado para uso nos seguintes objetos:
- Tabelas do sistema
- Índices espaciais
- Índices columnstore otimizados para memória
Conjuntos de resultados
A menos que NO_INFOMSGS
seja especificado (o nome da tabela deve ser especificado), DBCC DBREINDEX
sempre retorna:
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Permissões
O chamador deve ser o proprietário da tabela ou ser membro da função de servidor fixa sysadmin , da função de banco de dados fixa db_owner ou da função de banco de dados fixa db_ddladmin.
Exemplos
Um. Reconstruir um índice
O exemplo a seguir recria o índice clusterizado Employee_EmployeeID
com um fator de preenchimento de 80
na tabela Employee
no banco de dados AdventureWorks2022
.
USE AdventureWorks2022;
GO
DBCC DBREINDEX ('HumanResources.Employee', PK_Employee_BusinessEntityID, 80);
GO
B. Reconstruir todos os índices
O exemplo a seguir recria todos os índices na tabela Employee
em AdventureWorks2022
usando um valor de fator de preenchimento de 70
.
USE AdventureWorks2022;
GO
DBCC DBREINDEX ('HumanResources.Employee', ' ', 70);
GO