DBCC ShrinkDatabase()
DBCC ShrinkFile()
- Нужно ли выполнять обе команды DBCC, чтобы уменьшить базу данных?
- В чем разница между этими двумя выше?
DBCC ShrinkDatabase()
DBCC ShrinkFile()
Ответы:
Просто...
DBCC ShrinkDatabase()
: сжать все файлыDBCC ShrinkFile()
: только один файлНапример, у вас может быть проблема с резервной копией журнала, и она вышла из-под контроля, поэтому вы запускаете DBCC ShrinkFile()
.
Вы почти никогда не используете ShrinkDatabase
.
Прежде чем вы решите использовать любую из этих команд, пожалуйста, прочитайте блог Пола Рэндала о сокращении .
Я бы не сжал ни один из файлов (mdf, ldf), если бы не было четкой причины. Файлы имеют размер, потому что они должны быть. Любые блоги, предлагающие сделать это в рамках регулярного обслуживания, вероятно, не понимают, как работает SQL Server.
База данных по умолчанию имеет два файла
MyDb.MDF и MyDb.LDF
Файл MDF - это файл данных, в котором находится основной раздел. В зависимости от ваших потребностей, вы можете разбить базу данных на несколько файлов. Это делается для того, чтобы данные (одна или несколько таблиц) могли занимать несколько файлов, которые обычно помещаются на отдельные жесткие диски для достижения более высокой производительности.
Если вы уменьшаете базу данных, все файлы, связанные с этой базой данных, будут сокращены.
Если вы уменьшите файл, то только выбранный файл будет сокращен.
Вам нужно всего лишь использовать команду Shrink Database. Но обычно это не очень хорошая практика и не рекомендуется.
Если вы сообщите нам, в чем заключается проблема, с которой вы столкнулись, мы можем предоставить вам дополнительную информацию о том, как ее решить.
Скорее всего, мы используем только dbcc shrinkfile. sp_helpdb 'databasename' предоставляет список файлов данных и журналов в базе данных.
щелкните правой кнопкой мыши на mnagement studio, tasks-> shrink-> file показывает, сколько% вы можете сжать.
что бы мы ни сжимали, его можно вернуть на диск как свободное место.
Например: используйте 'databasename' dbcc shrinkfile (fileid, 100)
здесь 100 это 100 МБ
fileid может получить из sp_helpdb 'databasename'