Здравствуйте.
Если кратко: Возникла необходимость перенести таблицу вместе с LOB в другую файловую группу. Если я правильно понимаю, сделать это можно либо через пересоздание таблицы в этой группе и перенос данных, либо через пересоздание индекса с партиционированием. И то, и другое довольно геморойно — есть ли более простой путь?
Если не кратко: SQL Server 2012. Задача — сжать базу: если просто на месте пережать таблицы а потом сделать shrink — получится дико фрагментированная каша + вся операция займёт несколько дней и остановить её будет нельзя. Поэтому вместо этого хочу разнести данные по отдельным файловым группам, а затем просто shrink truncate_only. Соответственно всё перенёс, остались только LOB-Data, с которыми как не крутись гемор. Пока склоняюсь к удалению индексов исходной таблицы, переименованию исходной таблицы, создание новой, копирование данных, удаление исходной, пересоздание индексов. Но может есть способ проще?
"Generate script..." не предлагать — таблиц очень много, я замучаюсь выбирать что именно скриптовать, проще самому что-то накатать.
Как работать SSIS я не знаю, если это можно сделать с его помощью, хотелось бы ссылку на статью с пояснениями как примерно подобное выглядит.
Empty data file не работает с primary file group (по крайней мере у меня ругнулось что не может перенести данные из основного файла базы)
Шринкануть primary с заданием требуемого размера можно, но это опять же долго, хотелось бы это делать только в крайнем случае.
ARI ARI ARI... Arrivederci!