Ich führe derzeit ein Skript aus, das eine DBCC INDEXDEFRAG für jede Tabelle in einer SQL Server 2005-Datenbank nacheinander ausführt. Die Verwendung von DBCC DBREINDEX anstelle von INDEXDEFRAG ist aus Platzgründen und aufgrund von Verfügbarkeitsanforderungen keine Option.
Ich habe festgestellt, dass es lange dauert, bis bestimmte Tabellen defragmentiert sind. Wenn ich beispielsweise die dynamische Verwaltungsansicht "sys.dm_exec_requests" untersuche, kann ich feststellen, dass der folgende INDEXDEFRAG derzeit den Clustered-Index einer Tabelle mit einer table_id von 829610394 abläuft:
DBCC INDEXDEFRAG (0, 829610394, 1)
Ich weiß, dass es lange dauern wird, bis der Defragmentierungsprozess abgeschlossen ist. Abgesehen von der Tatsache, dass das aktuell ausgeführte Skript möglicherweise alle Tabellen defragmentiert, kann es mir schaden, wenn ich manuell einen anderen DBCC INDEXDEFRAG für den Clustered-Index einer anderen Tabelle ausführe, während der aktuelle Befehl ausgeführt wird? Werden in diesem Fall beide Tabellen gleichzeitig defragmentiert?