如何释放SQL Server数据库中未使用的空间

问题描述 投票:0回答:3

我有一个大小为 270GB 的 SQL Server 数据库。近 91% 的空间在空间报告中显示为“未使用”。我知道未使用的空间是分配给特定对象的空间。应用程序团队对数据库进行了清除操作,但我们无法真正占用空间。

我已经检查了表上的索引碎片,但它们看起来不错。我还需要检查什么以及我应该做什么来释放该空间。数据库将来不会使用该空间。

根据我的理解

DBCC SHRINKFILE
仅释放未分配的空间。我读过有关
DBCC CLEANTABLE
DBCC SHRINK DATABASE
的内容,但不确定它是否足以执行。

如何有效释放对象未使用的空间。

sql-server database-administration
3个回答
1
投票

所以根据我的理解,你首先需要缩小文件,然后你可以缩小数据库:

使用 SQL Server Management Studio:

  1. 缩小文件:r-单击数据库、“任务”、“缩小”、“文件”:然后选择一个比对话框中给出的“最小值”值稍大的新文件大小值。

  2. 收缩数据库:右键单击数据库,“任务”,“收缩”,“数据库”(勾选“重新组织文件”复选框)

这样,我就能够减少磁盘报告中“未使用”空间的百分比。但仍然剩下相当多的部分(20%)..我认为“重组”一些指数可能会有所帮助。


0
投票

如果数据库中只有索引,那么您可以在创建新文件组并将所有索引移入其中后删除旧文件组。您可以使用

CREATE INDEX ... WITH DROP_EXISTING

移动索引

0
投票

我编写了一个较大的表(架构和数据)的脚本,然后将其删除。

然后我就跑了 更改表 [dbo].[SomeTable] 重建; 该命令为我运行的每个命令释放未使用的空间

数据库是否快速收缩

然后运行上面的脚本将表和数据放回。

© www.soinside.com 2019 - 2024. All rights reserved.