WEB开发网
开发学院数据库MSSQL Server 确定SQL Server数据库和数据库文件的可用空间 阅读

确定SQL Server数据库和数据库文件的可用空间

 2009-09-12 00:00:00 来源:WEB开发网   
核心提示: USE Test5 GOsp_spaceused图二2 - DBCC SQLPERF另一个选项是使用DBCC SQLPERF(logspace)命令,这个命令会为你提供每个数据库中日志文件的输出结果,确定SQL Server数据库和数据库文件的可用空间(2),这个命令也会为你提供累计信息,因此如

  USE Test5
  GO
  sp_spaceused

确定SQL Server数据库和数据库文件的可用空间

图二

2 - DBCC SQLPERF

另一个选项是使用DBCC SQLPERF(logspace)命令。这个命令会为你提供每个数据库中日志文件的输出结果。这个命令也会为你提供累计信息,因此如果你有多个日志文件,那么它会提供给你每个数据库所有日志文件的总空闲空间。

    USE master
  GO
  DBCC SQLPERF(logspace)

确定SQL Server数据库和数据库文件的可用空间

图三

3 - DBCC SRHINKFILE

另一个选项是使用3 - DBCC SRHINKFILE。这个命令存在的问题是,如果你运行它,那么它仍将压缩文件。没有什么方法可以运行这个命令而只得到信息的邮件。

    USE Test5
  GO
  DBCC SHRINKFILE (test5)
  DBCC SHRINKFILE (test5_log)

这两个命令的结果集显示如下。输出结果在8K的页面中,因此计算MB的一种简单方法是拿这个值除以128。这样你就可以得到FileId =1的CurrentSize为393MB。

确定SQL Server数据库和数据库文件的可用空间

图四

接下来是输出结果的一些描述。比较有用的一个字段是MinimumSize。它将告诉你文件创建时的原始大小。它也会告诉你,如果你想使用这些信息来缩小其中一个文件,那么你可以使用的最小值。

正如我在前面提到的,这种方法的缺点是,如果在文件中有可用空间,那么它仍然会缩小该文件,即使我们在文件大小有一个更高值的情况下运行这个命令,它仍然会缩小。在这个例子中,日志文件是682MB,但是我们指定了这个值为10000MB.

DBCC SHRINKFILE (test5_log, 10000)

4 – FILEPROPERTY

另一个选项是使用FILEPROPERTY函数的SpaceUsed属性,它将告诉我们使用了多少空间,然后我们可以基于当前的大小来计算可用空间和什么是正在使用的。

  USE Test5
  GO
  SELECT DB_NAME() AS DbName,
  name AS FileName,
  size/128.0 AS CurrentSizeMB,
  size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0 AS FreeSpaceMB
  FROM sys.database_files;

在这里,我们可以从上面Test5数据库中看到输出结果。

确定SQL Server数据库和数据库文件的可用空间

图五

概述

正如你看到的,这里没有选项可以提供给你想要的所有信息。FILEPROPERTY选项可能是最佳的,但是DBCC SHRINKFILE中的MinimumSize值可能也是不错的选择。现在,你有一些方法得到这些信息,因此请使用最适合你个人环境和你当前处理问题的选项。

上一页  1 2 

Tags:确定 SQL Server

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接