Jango Asked: 2010-08-24 10:25:42 +0800 CST2010-08-24 10:25:42 +0800 CST 2010-08-24 10:25:42 +0800 CST 收缩数据库和文件有什么区别? 772 DBCC ShrinkDatabase() DBCC ShrinkFile() 我是否需要同时运行两个 DBCC 命令才能缩小数据库? 上面这两个有什么区别? sql-server sql-server-2005 3 个回答 Voted Best Answer gbn 2010-08-24T10:29:23+08:002010-08-24T10:29:23+08:00 简单地... DBCC ShrinkDatabase(): 收缩所有文件 DBCC ShrinkFile(): 只有一个文件 例如,您可能有一个日志备份问题,并且已经失控,因此您运行DBCC ShrinkFile(). 你几乎从不使用ShrinkDatabase. 在您考虑使用任一命令之前,请阅读Paul Randal 的关于收缩的博客。 除非有明确的原因,否则我不会缩小任何一个文件(mdf、ldf)。这些文件的大小是它们需要的大小。任何建议将其作为定期维护的一部分的博客都可能不了解 SQL Server 的工作原理。 Raj More 2010-08-24T10:36:12+08:002010-08-24T10:36:12+08:00 默认数据库有两个文件 MyDb.MDF 和 MyDb.LDF MDF 文件是主分区所在的数据文件。根据您的需要,您可以将数据库划分为多个文件。这样做是为了使数据(单个或多个表)可以跨越多个文件,这些文件通常放在单独的硬盘驱动器上以实现更高的性能。 如果收缩数据库,则与该数据库关联的所有文件都将收缩。 如果你收缩一个文件,那么只有选择的文件会被收缩。 您只需要使用 Shrink Database 命令。但这样做通常不是一个好的做法,也不是推荐的做法。 如果您告诉我们您遇到的问题是什么,我们可以为您提供有关如何解决问题的更多信息。 Gigs 2010-08-24T11:40:09+08:002010-08-24T11:40:09+08:00 我们很可能只使用 dbcc shrinkfile 。sp_helpdb 'databasename' 提供数据库中数据和日志文件的列表。 右键单击 mnagement studio,tasks->shrink->file 提供可以缩小的百分比。 无论我们缩小什么,它都可以作为可用空间回到磁盘上。 例如:使用 'databasename' dbcc shrinkfile(fileid,100) 这里 100 是 100 MB fileid 可以从 sp_helpdb 'databasename' 获取
简单地...
DBCC ShrinkDatabase()
: 收缩所有文件DBCC ShrinkFile()
: 只有一个文件例如,您可能有一个日志备份问题,并且已经失控,因此您运行
DBCC ShrinkFile()
.你几乎从不使用
ShrinkDatabase
.在您考虑使用任一命令之前,请阅读Paul Randal 的关于收缩的博客。
除非有明确的原因,否则我不会缩小任何一个文件(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 MB
fileid 可以从 sp_helpdb 'databasename' 获取