0

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

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

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

4

1 回答 1

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
于 2013-07-19T14:51:59.323 回答