DBCC DBREINDEX (Transact-SQL)
Reconstruit un ou plusieurs index pour une table d'une base de données spécifiée.
Important : |
---|
Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Utilisez plutôt ALTER INDEX. |
Conventions de syntaxe Transact-SQL
Syntaxe
DBCC DBREINDEX
(
table_name
[ , index_name [ , fillfactor ] ]
)
[ WITH NO_INFOMSGS ]
Arguments
- table_name
Nom de la table dont le ou les index spécifiés sont reconstruits. Les noms de tables doivent respecter les règles applicables aux identificateurs. database.
- index_name
Nom de l'index à reconstruire. Les noms d'index doivent suivre les règles applicables aux identificateurs. Si vous spécifiez l'argument index_name, vous devez définir table_name. Si la valeur de index_name n'est pas spécifiée ou est spécifiée avec '', tous les index de la table sont reconstruits.
fillfactor
Pourcentage d'espace à utiliser sur chaque page d'index pour le stockage des données lors de la création ou de la reconstruction de l'index. fillfactor remplace le taux de remplissage utilisé au moment de la création de l'index, devenant ainsi la nouvelle valeur par défaut pour l'index et pour tout autre index non-cluster reconstruit suite à la reconstruction d'un index cluster. Si fillfactor a la valeur 0, DBCC DBREINDEX utilise la dernière valeur de taux de remplissage spécifiée pour l'index. Cette valeur est stockée dans la vue de catalogue sys.indexes.Si vous spécifiez l'argument fillfactor, vous devez définir table_name et index_name. Si la valeur de fillfactor n'est pas spécifiée, le taux de remplissage par défaut (100) est utilisé. Pour plus d'informations, consultez Taux de remplissage.
- WITH NO_INFOMSGS
Supprime tous les messages d'information dont le niveau de gravité est compris entre 0 et 10.
Jeux de résultats
Si vous avez spécifié une des options, excepté NO_INFOMSGS (la table doit être spécifiée), DBCC DBREINDEX retourne le message suivant :
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Notes
L'instruction DBCC DBREINDEX reconstruit un index pour une table ou tous les index définis pour une table. En permettant la reconstruction dynamique d'un index, les index qui appliquent les contraintes PRIMARY KEY ou UNIQUE peuvent être reconstruits sans devoir supprimer et recréer ces contraintes. Autrement dit, vous pouvez reconstruire un index sans connaître la structure d'une table ou ses contraintes. Cela peut arriver après une copie en bloc de données dans la table.
DBCC DBREINDEX peut reconstruire tous les index d'une table en une seule instruction. Cette opération est plus simple que de coder plusieurs instructions DROP INDEX et CREATE INDEX. Comme le travail est effectué par une seule instruction, DBCC DBREINDEX est automatiquement atomique, tandis que les instructions individuelles DROP INDEX et CREATE INDEX doivent être intégrées à une transaction pour être atomiques. De même, DBCC DBREINDEX offre l'avantage de fournir un plus grand nombre d'optimisations que les instructions individuelles DROP INDEX et CREATE INDEX.
Contrairement à DBCC INDEXDEFRAG ou à ALTER INDEX avec l'option REORGANIZE, DBCC DBREINDEX est une opération hors ligne. Lorsqu'un index non-cluster est reconstruit, un verrou partagé est maintenu sur la table en question pendant la durée de l'opération. Cela empêche toute modification de la table. Si la reconstruction porte sur l'index cluster, c'est un verrou de table exclusif qui est mis en place. Tout accès à la table étant bloqué, la table est effectivement hors ligne. Utilisez l'instruction ALTER INDEX REBUILD avec l'option ONLINE pour procéder à une reconstruction d'index en ligne, ou pour contrôler le degré de parallélisme lors de l'opération de reconstruction d'index.
Pour plus d'informations sur la sélection d'une méthode de reconstruction ou de réorganisation d'index, consultez Réorganisation et reconstruction d'index .
DBCC DBREINDEX n'est pas pris en charge pour une utilisation sur les tables système.
Autorisations
L'appelant doit être propriétaire de la table ou être membre du rôle de serveur fixe sysadmin, du rôle de base de données fixe db_owner ou du rôle de base de données fixe db_ddladmin.
Exemples
A. Reconstruction d'un index
Dans l'exemple suivant, l'index cluster Employee_EmployeeID
est reconstruit avec un taux de remplissage de 80
sur la table Employee
de la base de données AdventureWorks
.
USE AdventureWorks;
GO
DBCC DBREINDEX ("HumanResources.Employee", PK_Employee_EmployeeID,80);
GO
B. Reconstruction de tous les index
Dans l'exemple suivant, tous les index de la table Employee
de AdventureWorks
sont reconstruits avec un taux de remplissage de 70
.
USE AdventureWorks;
GO
DBCC DBREINDEX ("HumanResources.Employee", " ", 70);
GO
Voir aussi
Référence
ALTER TABLE (Transact-SQL)
CREATE TABLE (Transact-SQL)
DBCC (Transact-SQL)
sys.indexes (Transact-SQL)
sys.dm_db_index_physical_stats
ALTER INDEX (Transact-SQL)
Autres ressources
Architecture des tables et des index