在sql server数据库中查找可用空间的最佳方法?

Gor*_*yII 6 sql sql-server sql-server-2005

我希望能够找出我的数据库文件中剩余多少空间,以便我可以知道何时增加空间,以便在应用程序运行困难时不会这样做.

我希望能够编写脚本,以便我可以定期在多个数据库中运行它.

我有SQL Server 2000和SQL Server 2005数据库,但我希望能够跨两者运行相同的脚本.

我可以使用Management Studio在2005数据库上手动执行此操作,但不能在2000数据库上执行此操作.

Mic*_*tta 14

试试sp_spaceused:

显示当前数据库中的表,索引视图或Service Broker队列使用的行数,保留的磁盘空间和磁盘空间,或显示整个数据库保留和使用的磁盘空间.

我相信这存在于SQL Server 2000中,但我无法证明这一点.它适用于2005年和2008年.

sp_helptext如果你想把它绑在一些服务器端逻辑上,你可以偷看它.

编辑:扩展我的评论如下,并感谢http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=82359的原始撰稿人,这里是一种按文件分解使用情况的方法:

select
      name
    , filename
    , convert(decimal(12,2),round(a.size/128.000,2)) as FileSizeMB
    , convert(decimal(12,2),round(fileproperty(a.name,'SpaceUsed')/128.000,2)) as SpaceUsedMB
    , convert(decimal(12,2),round((a.size-fileproperty(a.name,'SpaceUsed'))/128.000,2)) as FreeSpaceMB
from dbo.sysfiles a
Run Code Online (Sandbox Code Playgroud)

  • 您想要的数据是dbo.sysfiles.试试这个帖子结尾处的陈述:http://www.sqlteam.com/forums/topic.asp?TOPIC_ID = 82359 (3认同)

Chr*_*ian -1

对我来说,sql server总是自动分配更多空间,直到硬盘已满,所以只需查询硬盘上的可用空间即可。

您使用哪些设置必须增加数据库的“空间”?

  • SQL Server 在其数据文件中保留未使用的空间。当可用空间耗尽时,SQL Server 将增大文件以容纳空间。在此增长过程中,数据库性能可能会受到影响。我通常根据我的数据将自动增长大小设置为合理的值,然后就这样。 (3认同)