收缩数据库和文件有什么区别?

37 sql-server-2005 sql-server shrink dbcc

DBCC ShrinkDatabase()
DBCC ShrinkFile()
Run Code Online (Sandbox Code Playgroud)
  1. 我是否需要同时运行两个 DBCC 命令才能缩小数据库?
  2. 上面这两个有什么区别?

gbn*_*gbn 41

简单地...

  • DBCC ShrinkDatabase(): 缩小所有文件
  • DBCC ShrinkFile(): 一个文件

例如,您可能有一个日志备份问题,并且它已经失控,所以您运行DBCC ShrinkFile().

几乎从不使用ShrinkDatabase.

在您考虑使用任一命令之前,请阅读Paul Randal 的关于 shrinking 的博客

除非有明确的原因,否则我不会缩小任何一个文件(mdf、ldf)。这些文件的大小是因为它们需要。任何建议将其作为定期维护的一部分的博客可能都不了解 SQL Server 的工作原理。

  • 谢啦。你是对的。我刚刚阅读了 Brent Ozar 的博客。他在博客中发誓“停止收缩您的数据库文件。认真地。现在。”。 (2认同)