繁体   English   中英

在SQL Server中收缩数据库

[英]Shrink the database in SQL Server

我有一个几乎快满的数据库,我们可以选择一些方法来处理:

  1. 我们可以增加数据库文件的大小
  2. 缩小数据库

在选择第一个选项之前,我想知道如何检查数据库大小以及其中实际有多少数据,以便可以缩小数据库以获取一些可用空间。

因此,请使用以下查询来查看您的未使用空间在哪里,什么文件有多大。

Use DatabaseName
GO

Select name                                             AS [FileName]
     , size/128.0                                       AS [FileSize(MB)]
     , fileproperty(name, 'SpaceUsed')/128.0            AS [Space_Used(MB)]
     , (size - fileproperty(name, 'SpaceUsed')) /128.0  AS [FreeSpace(MB)] 
From dbo.sysfiles
GO

最后,当您决定使用大量可用空间来缩小文件时,可以使用DBCCrinkfile命令来执行此操作。

USE DatabaseName
GO
DBCC SHRINKFILE ('FileName', 10)   --<-- will shrink it to 10 MB
GO

注意

如果BLOB数据类型(文本,ntext,xml等)列占用了任何未使用的空间,那么除非再次删除并重新创建表,否则您可能无法索回该未使用的空间。

您可以通过两种不同的方式获取此信息。 在SSMS中,您可以右键单击数据库,选择属性并查看文件。 您的数据和日志文件将显示指示大小的“初始”值。

您可以右键单击数据库,单击“任务和缩小”,然后“文件”和数据文件应为默认显示。 这将显示您的大小和可用空间。

您还可以运行一个脚本,向您显示数据库的所有大小和位置信息。 您可以通过快速的Google搜索找到许多内容。

此外,还有一些内置的SP的,可以让你的描述信息在这里特别的第四个查询显示了你的自由空间量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM