繁体   English   中英

如何使用SQL Server在单个数据库中分析表的大小?

[英]How to analyze tables for size in a single DB using SQL Server?

我有一个名为约翰逊的数据库,包含50个表。 使用此数据库的团队询问我是否可以为每个表提供大小估计

如何使用SQL Server显示数据库中所有表的列表及其各自的大小(GB或MB)?

您可以使用SSMS显示最大1000个表的大小:

在此输入图像描述

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 

运行时在数据库上下文中给出类似这样的结果.. Northwind数据库 在此输入图像描述

@马里

我试图从远程数据库(从Azure)上的SQL Server Management Studio运行您的脚本,但它找不到存储过程。

Could not find stored procedure 'sp_MSforeachtable'.

如果有人想在Azure DB上运行它,请首先运行此脚本以创建sp_MSforeachtable存储过程:

https://gist.github.com/metaskills/893599

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM