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


Answers:


36

只是...

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

例如,您可能遇到了日志备份问题,并且该日志已超出控制范围,因此您可以运行DBCC ShrinkFile()

几乎从未使用过ShrinkDatabase

在您考虑使用这两个命令之前,请阅读Paul Randal的博客缩减

除非有明确的原因,否则我都不会收缩其中一个文件(mdf,ldf)。文件的大小是因为它们的大小而定。任何建议这样做的博客都可能不了解SQL Server的工作方式。


2
谢啦。你是对的。我刚刚读了Brent Ozar的博客。.他在他的博客“停止收缩数据库文件。认真。现在。”中确实发誓。

而当它做同样的事情时,为什么会有不同的论点呢?
Stefan Steinegger 2013年

2

默认数据库有两个文件

MyDb.MDF和MyDb.LDF

MDF文件是主分区所在的数据文件。根据您的需要,您可以将一个数据库分区为多个文件。这样做是为了使数据(单个或多个表)可以跨越通常放置在单独硬盘驱动器上的多个文件,以实现更高的性能。

如果收缩数据库,则与该数据库关联的所有文件都会缩小。

如果收缩文件,则仅缩小所选文件。

您只需要使用“收缩数据库”命令。但这通常不是一个好习惯,也不建议这样做。

如果您告诉我们您遇到的问题是什么,我们可以为您提供有关解决方法的更多信息。


哦..issue是我们的生产服务器磁盘空间不足。添加更多磁盘是理想选择,但我想知道我们还能做什么?

0

最有可能我们仅使用dbcc收缩文件。sp_helpdb'databasename'提供数据库中数据和日志文件的列表。

右键单击mnagement工作室,任务->缩小->文件提供了可以缩小的百分比。

无论我们收缩什么,它都可以作为磁盘上的可用空间重新使用。

例如:使用“数据库名称” dbccrinkfile(fileid,100)

这里100是100 MB

可以从sp_helpdb'数据库名'获取文件ID

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.