收缩数据库和文件有什么区别?
-
16-10-2019 - |
题
DBCC ShrinkDatabase()
DBCC ShrinkFile()
- 我需要运行两个DBCC命令以缩小数据库吗?
- 上面这两个之间有什么区别?
解决方案
简单地...
DBCC ShrinkDatabase()
: :收缩所有文件DBCC ShrinkFile()
: :只有一个文件
例如,您可能有一个日志备份问题,并且已经失控了,因此您可以运行 DBCC ShrinkFile()
.
你 几乎 永不使用 ShrinkDatabase
.
在考虑使用任何一个命令之前,请阅读 保罗·兰达尔(Paul Randal)关于缩水的博客.
除非有明确的原因,否则我都不会收缩一个文件(MDF,LDF)。这些文件是因为它们需要的大小。任何建议这样做的博客可能是常规维护的一部分,可能不了解SQL Server的工作原理。
其他提示
默认数据库有两个文件
mydb.mdf和mydb.ldf
MDF文件是主要分区所在的数据文件。根据您的需求,您可以将数据库划分为多个文件。这样做是为了使数据(单个或多个表)可以跨越通常放在单独的硬盘驱动器上以实现更高性能的多个文件。
如果收缩数据库,与该数据库关联的所有文件都将缩小。
如果您收缩文件,则只有所选的文件会缩小。
您只需要使用收缩数据库命令即可。但是,这样做通常不是一个好习惯,也不是推荐的做法。
如果您告诉我们您正在遇到的问题,我们可以为您提供有关如何解决它的更多信息。
我们很可能只使用DBCC收缩。 sp_helpdb'databasename'在数据库中提供了数据和日志文件列表。
右键单击MNAgement Studio,任务 - >缩小 - >文件提供您可以收缩多少%。
无论我们收缩什么,它都可以在磁盘上作为自由空间。
例如:使用'databasename'dbcc shrinkfile(文件ID,100)
这里100是100 MB
FileID可以从sp_helpdb'databasename'获得
不隶属于 dba.stackexchange