Запустите sys.sp_spaceused @objname = N'YourTable ';чтобы увидеть пространство, используемое вашей таблицей.
Если нет неиспользуемого пространства, тогда ваши данные действительно занимают это пространство
Если есть много неиспользуемого пространства, вы можете попробовать создатьновая файловая группа и перемещение столбцов text / varchar (max) в эту новую файловую группу и сокращение базы данных DBCC SHRINKDB
После этого ваша основная файловая группа займет меньше места, и вы можете уменьшить «нарушающие»msgstr "файл, использующий DBCC SHRINKFILE
, всякий раз, когда возникает проблема.
Создание новой файловой группы можно выполнить из SSMS, в свойствах базы данных, на странице файлов.Вы можете сгенерировать сценарий sql оттуда, чтобы увидеть, что происходит.
Перемещение текстовых столбцов в другую файловую группу можно выполнить с помощью TEXTIMAGE_ON {filegroup |"default"} в CREATE TABLE
Извините: невозможно изменить таблицу, нет отдельного столбца для другой файловой группы, но все "большие" столбцы одновременно.Таким образом, вы должны сделать это вручную или показать свою таблицу на новой диаграмме базы данных (в SSMS studio) и изменить свойство ... извините, я не знаю его имени, что-то вроде "Text / Image filegroup" (полагаю,У меня есть испанская SSMS), но она есть, когда вы видите свойства таблицы в конструкторе диаграмм базы данных.
Преимущества: меньшая фрагментация основной таблицы, более быстрые саканы табличного / кластерного индекса и возможность сокращения толькоинтересующий вас файл: с проблемными «большими» столбцами.