2013-06-24 4 views
0

J'essaie de créer un travail d'agent qui reconstruit les index de notre base de données SQL 2008 R2 attachée à une interface Deltek 6.1.Reconstruction de l'index SQL: la fragmentation de l'index% augmente?

Course à pied:

exec sp_msforeachtable 'DBCC DBREINDEX("?"," ",0)' 

Remarquant que certains des indices sont réellement obtenir beaucoup plus fragmenté. Cela pourrait-il être dû à l'espacement des index? Nous avons eu cela sur nos réseaux de test et de production avec différentes façons de reconstruire. Les tables sont généralement volumineuses, nous mettons à jour les statistiques après l'exécution de la reconstruction.

Répondre

0

Script pour la reconstruction de tous les index de table dans SQL Server:

USE DatabaseName --Enter the name of the database you want to reindex 

DECLARE @TableName varchar(255) 

DECLARE TableCursor CURSOR FOR 

SELECT table_name FROM information_schema.tables 

WHERE table_type = 'base table' 

OPEN TableCursor 

FETCH NEXT FROM TableCursor INTO @TableName 

WHILE @@FETCH_STATUS = 0 

BEGIN 

DBCC DBREINDEX(@TableName,' ',90) 

FETCH NEXT FROM TableCursor INTO @TableName 

END 

CLOSE TableCursor 

DEALLOCATE TableCursor 
+0

Nous faisons déjà la même chose que cette requête, nous sommes juste en utilisant le plutôt que fillfactor déjà existant définissant un nouveau. Le problème que nous avons est que la fragmentation moyenne en% est empiriquement aggravée après l'exécution d'un script de reconstruction/réorganisation. – fortysixty

+0

Quelle est la taille de la base de données? Si vous avez limité la quantité d'espace disponible, vous avez besoin d'au moins 10% d'espace libre pour réussir une défragmentation. – MineScript

+0

La taille de la base de données est d'environ 60 Go, avec 15,5 Go d'espace libre – fortysixty