В чем разница между уменьшенной базой данных и файлом?


Ответы:


36

Просто...

  • DBCC ShrinkDatabase(): сжать все файлы
  • DBCC ShrinkFile(): только один файл

Например, у вас может быть проблема с резервной копией журнала, и она вышла из-под контроля, поэтому вы запускаете DBCC ShrinkFile().

Вы почти никогда не используете ShrinkDatabase.

Прежде чем вы решите использовать любую из этих команд, пожалуйста, прочитайте блог Пола Рэндала о сокращении .

Я бы не сжал ни один из файлов (mdf, ldf), если бы не было четкой причины. Файлы имеют размер, потому что они должны быть. Любые блоги, предлагающие сделать это в рамках регулярного обслуживания, вероятно, не понимают, как работает SQL Server.


2
Спасибо чувак. вы правы. Я только что прочитал блог Брента Озара ... он буквально ругается в своем блоге "Хватит сокращать ваши файлы базы данных. Серьезно. Сейчас".

И когда он делает то же самое, почему существуют разные аргументы?
Стефан Штайнеггер,

2

База данных по умолчанию имеет два файла

MyDb.MDF и MyDb.LDF

Файл MDF - это файл данных, в котором находится основной раздел. В зависимости от ваших потребностей, вы можете разбить базу данных на несколько файлов. Это делается для того, чтобы данные (одна или несколько таблиц) могли занимать несколько файлов, которые обычно помещаются на отдельные жесткие диски для достижения более высокой производительности.

Если вы уменьшаете базу данных, все файлы, связанные с этой базой данных, будут сокращены.

Если вы уменьшите файл, то только выбранный файл будет сокращен.

Вам нужно всего лишь использовать команду Shrink Database. Но обычно это не очень хорошая практика и не рекомендуется.

Если вы сообщите нам, в чем заключается проблема, с которой вы столкнулись, мы можем предоставить вам дополнительную информацию о том, как ее решить.


Ой ... вопрос, наш производственный сервер исчерпал место на диске. Добавление большего количества дисков - это идеал, но мне было интересно, что еще мы можем сделать?

0

Скорее всего, мы используем только dbcc shrinkfile. sp_helpdb 'databasename' предоставляет список файлов данных и журналов в базе данных.

щелкните правой кнопкой мыши на mnagement studio, tasks-> shrink-> file показывает, сколько% вы можете сжать.

что бы мы ни сжимали, его можно вернуть на диск как свободное место.

Например: используйте 'databasename' dbcc shrinkfile (fileid, 100)

здесь 100 это 100 МБ

fileid может получить из sp_helpdb 'databasename'

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.