SQL Server:获取有关DB已用空间和未使用空间的报告

时间:2013-07-19 14:51:59

标签: sql sql-server tsql

客户要求我创建一个查询来创建有关数据库空间使用情况的报告,并提供每个表的详细信息。

认为它可能对其他人有用,我在这里发布我的解决方案。

请发表评论和可能的改进。我想知道,例如,如何为MySql数据库获得相同的结果。

1 个答案:

答案 0 :(得分:1)

此查询适用于Microsoft Sql Server 2000 +。

SET NOCOUNT ON 

DBCC UPDATEUSAGE(0) 

-- DB size.
EXEC sp_spaceused

-- Table row counts and sizes.
CREATE TABLE #t 
( 
    [name] NVARCHAR(128),
    [rows] CHAR(11),
    reserved VARCHAR(18), 
    data VARCHAR(18), 
    index_size VARCHAR(18),
    unused VARCHAR(18)
) 

INSERT #t EXEC sp_msForEachTable 'EXEC sp_spaceused ''?''' 

SELECT *
FROM   #t

-- # of rows.
SELECT SUM(CAST([rows] AS int)) AS [rows]
FROM   #t

DROP TABLE #t