MSSQL中查看每张表占用空间大小的方法(mssql显示各个表大小)

MSSQL服务器是一款非常优秀的关系型数据库,不仅可以方便的进行数据的存储和处理,同时还可以查看每张表占用空间的大小,这样可以更加有效的掌握数据库中数据使用空间的分布。下文将会介绍MSSQL服务器查看每张表占用空间大小的方法,包括SQL语句方式及用系统视图的方式。

### 一、SQL语句方式

使用SQL语句方式,可以使用如下语句来获取每张表的表的大小占用:

“`sql

SELECT t.name AS TableName,

SCHEMA_NAME(t.schema_id) AS SchemaName,

p.rows AS RowCounts,

SUM(a.total_pages)*8 AS TotalSpaceKB —单位:KB

FROM sys.tables t

INNER JOIN sys.indexes i ON t.OBJECT_ID = i.object_id

INNER JOIN sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id

INNER JOIN sys.allocation_units a ON p.partition_id = a.container_id

WHERE t.NAME NOT IN (‘sysdiagrams’)

GROUP BY t.Name, p.Rows, t.schema_id


执行以上语句,可以获取表名、表架构等信息,同时也可以获取每个表的记录数和总空间大小,单位默认为KB。

### 二、用系统视图

除了SQL语句,还可以使用系统视图,来获取每个表使用占用的空间大小。可以使用如下系统视图:

```SQL
SELECT
name AS TableName,
rows AS RowCounts,
SUM(reserved_page_count* 8.0) AS TotalSpaceKB --单位:KB
FROM sys.dm_db_partition_stats
GROUP BY name,rows
ORDER BY name

执行以上语句,同样可以获取每张表的总空间大小,单位仍为KB。

以上就是MSSQL服务器查看每张表占用空间大小的两种方法,通过这两种方法,可以更加有效的掌握数据库中数据使用空间的分布及负载情况,以便合理的管理数据库,为系统提供最佳的运行环境。


数据运维技术 » MSSQL中查看每张表占用空间大小的方法(mssql显示各个表大小)