客户要求我创建一个查询来创建有关数据库空间使用情况的报告,并提供每个表的详细信息。
认为它可能对其他人有用,我在这里发布我的解决方案。
请发表评论和可能的改进。我想知道,例如,如何为MySql数据库获得相同的结果。
答案 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