Наиболее распространенным вариантом этого вопроса, который я видел, является то, что люди удаляли строки и/или столбцы, но размер не уменьшался, и большинство ответов в ответ на этот вопрос состоит в том, что вы не должны пытаться сжиматься если вы можете это сделать. Из того, что я прочитал, лучший способ справиться с этим - вставить содержимое в новую таблицу, которая позволит SQL аккуратно скомпилировать данные.SQL Server - Выпущенная таблица, но неиспользуемое пространство не будет исправлено?
Я не уверен, если то, что я собираюсь сказать, это то же самое, но я удалил несколько большой, неиспользуемую таблицы из моей базы данных, которые должны были высвобожденной некоторое пространство, но кажется, что это ничего не делал. Я начал с размера 14 ГБ, и после удаления я все еще имею размер 14 ГБ.
Вот снимок того, что он выглядит как после удаления:
FileSizeMB UsedSpaceMB UnusedSpaceMB Type DBFileName
285.06 8.94 276.13 Log Database_DB_log
13866.00 9160.88 4705.13 Data Database_DB
14151.06 9169.82 4981.26 *** Total for all files ***
Сценарий можно найти здесь: http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=61762
Из этого описания, это, безусловно, выглядит как у меня есть неиспользуемое пространство, что это из таблиц, которые я только что удалил, но есть ли способ вернуть его, не делая сокращения? Мне просто очень неудобно делать сокращения из-за всех плохих вещей, которые я читал об этом, и, учитывая, что я никогда не занимался индексами в SQL, я не уверен, что смогу повторно индексировать правильно.
Любые мысли?
У меня возникает вопрос, что я не думаю, что полностью понял из ссылки: «Операция сжатия не сохраняет состояние фрагментации индексов в базе данных и, как правило, увеличивает степень фрагментации до определенной степени. многократно сокращают базу данных ». Если бы мне пришлось сжимать базу данных, но в разделе «Сокращение действия», если флажок «Реорганизовать файлы» пустым - это все равно приведет к фрагментации? – Farellia
Я считаю, что так будет. То, что вы, вероятно, захотите сделать, это реорганизация индекса после завершения операции усадки. Это онлайн-операция (лучше, чем восстановление на чем угодно, кроме Enterprise), но может быть интенсивной, поэтому может возникнуть высокая очередь и тому подобное. – Josh
Прежде чем вы производите случайную усадку базы данных, вы должны прочитать эту статью и все статьи, на которые ссылаются внутри. https://www.brentozar.com/archive/2009/08/stop-shrinking-your-database-files-seriously-now/ И вот действительно хорошая об использовании автоматической усадки. http://serverfault.com/questions/20909/is-it-safe-to-have-sql-server-auto-shrink-turned-on –