В настоящее время я запускаю скрипт, который выполняет DBCC INDEXDEFRAG для каждой таблицы в базе данных SQL Server 2005, по одной таблице за раз. Использование DBCC DBREINDEX вместо INDEXDEFRAG не вариант из-за ограниченного пространства и требований по времени безотказной работы.
Я заметил, что для дефрагментации определенных таблиц требуется много времени. Например, если я изучу динамическое административное представление «sys.dm_exec_requests», то увижу, что следующий INDEXDEFRAG в настоящее время обрабатывает кластеризованный индекс таблицы, у которой table_id равен 829610394:
DBCC INDEXDEFRAG (0, 829610394, 1)
Я знаю, что пройдет много времени, прежде чем процесс дефрагментации завершится. Если оставить в стороне тот факт, что выполняемый в настоящее время сценарий в конечном итоге дефрагментирует все таблицы, есть ли у меня какая-либо опасность, если я буду вручную запускать другой DBCC INDEXDEFRAG для кластеризованного индекса другой таблицы во время выполнения текущей команды? Будут ли обе таблицы одновременно дефрагментированы, если я это сделаю?