У меня есть один файл MDF, который я только что скопировал во время обновления с SQL Server 2005; и я добавил еще 12 файлов NDF в эту FILEGROUP, которую я добавил.
В идеале я бы использовал DBCC SHRINKFILE (File1, EMPTYFILE) для ребалансировки; но это происходит на удивление медленно. Я бы хотел переместить 70 ГБ более управляемыми фрагментами; но выполнение DBCC SHRINKFILE без EMPTYFILE фактически не помещает данные в другие файлы; и EMPTYFILE идет, пока не очистит файл.
Есть предложения, как делать это постепенно?
Спасибо,
Вы можете перестроить свои индексы (дефрагментация никому не поможет, поскольку она перемещает данные только в одном файле). Если этого недостаточно, создайте другую группу файлов и перестройте индексы кластера в эту новую группу файлов. Это переместит таблицу в новую файловую группу. Затем перестройте их снова в исходную файловую группу, которая переместит их обратно. Сделайте то же самое для некластеризованных индексов.
Я считаю, что у вас будут лучшие результаты, если вы переиндексируете данные. Это приведет к тому, что SQL Server попытается переместить данные, пока ваши таблицы имеют кластерные индексы. Вы можете переиндексировать таблицы по одной, вручную или дождаться следующего периода обслуживания переиндексации. Я бы сделал двойной плюс, чтобы в других файлах было достаточно места; вы не хотите полагаться для этого на автоматический рост.