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

网络整理 - 07-27
专家解答

  这里有一些方法可以找出你数据库中有多少可用空间。(请注意,这个值会变大或变小,这是因为创建事务、做备份和压缩文件,因此并不是在每个例子中数字都是完全一样的。)

  首先,我们需要选择一个数据库,然后获取这些文件的一些信息。

      USE Test5

  GO

  sp_helpdb Test5

  GO

  如果我们运行上面的代码,我们会得到下面的输出结果。在这里,我们可以看到数据库的总大小和数据库文件当前的大小,但是这些信息没有告诉我们可用空间有多大。

  

  图一

  接着,我们需要做的是获取组成数据库的每个文件的信息。在上面的结果集中,我们可以看到,我们有两个名称“Test5”和“Test5_log”,这两个名称将在后面的步骤中用到。这里有组成Test5数据库的两个文件的逻辑名称。如果这个数据库的文件多于两个,那么它们都会列出来。

  1 - sp_spaceused

  其中一个选项是sp_spaceused。如果我们运行下面的命令,那么我们可以看到数据库中有多少可用空间,但是这些信息展示了总的空闲空间包括事务日志空闲空间,这可能会让人误导。

     USE Test5

  GO

  sp_spaceused

  

  图二

  2 - DBCC SQLPERF

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

      USE master

  GO

  DBCC SQLPERF(logspace)

  

  图三