Obecnie uruchamiam skrypt, który wykonuje DBCC INDEXDEFRAG na każdej tabeli w bazie danych SQL Server 2005, po jednej tabeli na raz. Używanie DBCC DBREINDEX zamiast INDEXDEFRAG nie jest opcją ze względu na ograniczenia miejsca i wymagania dotyczące czasu pracy.
Zauważyłem, że defragmentacja niektórych tabel zajmuje dużo czasu. Na przykład, jeśli zbadam dynamiczny widok zarządzania „sys.dm_exec_requests”, zobaczę, że następujący INDEXDEFRAG obecnie rezygnuje z indeksu klastrowego tabeli o identyfikatorze tabeli 829610394:
DBCC INDEXDEFRAG (0, 829610394, 1)
Wiem, że upłynie dużo czasu, zanim proces defragmentacji zostanie zakończony. Pomijając fakt, że aktualnie uruchomiony skrypt ostatecznie zdefragmentuje wszystkie tabele, czy jest jakieś szkody we mnie ręcznie, uruchamiając kolejne DBCC INDEXDEFRAG na indeksie klastrowym innej tabeli podczas wykonywania bieżącego polecenia? Czy obie tabele zostaną faktycznie defragmentowane w tym samym czasie, jeśli to zrobię?