DBCC ShrinkDatabase()
DBCC ShrinkFile()
- 我是否需要运行两个DBCC命令才能缩小数据库?
- 以上两者之间有什么区别?
DBCC ShrinkDatabase()
DBCC ShrinkFile()
Answers:
只是...
DBCC ShrinkDatabase()
:缩小所有文件DBCC ShrinkFile()
:仅一个文件例如,您可能遇到了日志备份问题,并且该日志已超出控制范围,因此您可以运行DBCC ShrinkFile()
。
您几乎从未使用过ShrinkDatabase
。
在您考虑使用这两个命令之前,请阅读Paul Randal的博客缩减。
除非有明确的原因,否则我都不会收缩其中一个文件(mdf,ldf)。文件的大小是因为它们的大小而定。任何建议这样做的博客都可能不了解SQL Server的工作方式。
默认数据库有两个文件
MyDb.MDF和MyDb.LDF
MDF文件是主分区所在的数据文件。根据您的需要,您可以将一个数据库分区为多个文件。这样做是为了使数据(单个或多个表)可以跨越通常放置在单独硬盘驱动器上的多个文件,以实现更高的性能。
如果收缩数据库,则与该数据库关联的所有文件都会缩小。
如果收缩文件,则仅缩小所选文件。
您只需要使用“收缩数据库”命令。但这通常不是一个好习惯,也不建议这样做。
如果您告诉我们您遇到的问题是什么,我们可以为您提供有关解决方法的更多信息。
最有可能我们仅使用dbcc收缩文件。sp_helpdb'databasename'提供数据库中数据和日志文件的列表。
右键单击mnagement工作室,任务->缩小->文件提供了可以缩小的百分比。
无论我们收缩什么,它都可以作为磁盘上的可用空间重新使用。
例如:使用“数据库名称” dbccrinkfile(fileid,100)
这里100是100 MB
可以从sp_helpdb'数据库名'获取文件ID