简体   繁体   English

收缩不适用于SQL Server数据库中的可用空间

[英]Shrink does not work for free space in sql server database

i am trying to shrink database which has a simple recovery model.It has about 10 gb free space but it did not change. 我正在尝试缩小具有简单恢复模型的数据库。它具有约10 gb的可用空间,但没有变化。

Here is how i get free space and shrink comment 这是我获得可用空间并缩小评论的方式

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

Here is the comment how i shrink file 这是我如何缩小文件的评论

dbcc shrinkfile(<file_name>,<space_used_mb>)

Actually shrinkfile's 2nd argument is target_space, not 'space_used_mb'. 实际上,srinkfile的第二个参数是target_space,而不是'space_used_mb'。 So, the following code should cut your data file, if the db is small enough. 因此,如果数据库足够小,以下代码应剪切您的数据文件。

USE master
GO
dbcc shrinkfile( fileId, 250 );

Also, you may consider using SHRINKDATABASE for you case (but be careful about that!) 同样,您可以考虑为自己的情况使用SHRINKDATABASE(但请注意这一点!)

DBCC SHRINKDATABASE ( [SHRINKED_DB_NAME] )

Corresponding topic is here . 相应的主题在这里

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

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