收缩不适用于sql server数据库中的可用空间

时间:2014-05-27 09:23:32

标签: sql sql-server tsql

我正在尝试缩小具有简单恢复模型的数据库。它有大约10 GB的可用空间,但它没有改变。

以下是我如何获得可用空间和缩小评论

select
a.FILEID,name,
convert(decimal(12,2),round(a.size/128.000,2)) as FILE_SIZE_MB,
convert(decimal(12,2),round(fileproperty(a.name,'SpaceUsed')/128.000,2))as [SPACE_USED_MB],
convert(decimal(12,2),round((a.size-fileproperty(a.name,'SpaceUsed'))/128.000,2))[FREE_SPACE_MB] ,
NAME = left(a.NAME,15),
FILENAME = left(a.FILENAME,30)
from
dbo.sysfiles a

以下是我如何收缩文件的评论

dbcc shrinkfile(<file_name>,<space_used_mb>)

1 个答案:

答案 0 :(得分:0)

实际上,shrinkfile的第二个参数是target_space,而不是&#39; space_used_mb&#39;。 因此,如果db足够小,以下代码应该删除您的数据文件。

USE master
GO
dbcc shrinkfile( fileId, 250 );

另外,您可以考虑使用SHRINKDATABASE(但要小心!)

DBCC SHRINKDATABASE ( [SHRINKED_DB_NAME] )

Corresponding topic is here