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语句,还可以使用系统视图,来获取每个表使用占用的空间大小。可以使用如下系统视图:
```SQLSELECT
name AS TableName,rows AS RowCounts,
SUM(reserved_page_count* 8.0) AS TotalSpaceKB --单位:KBFROM sys.dm_db_partition_stats
GROUP BY name,rowsORDER BY name
执行以上语句,同样可以获取每张表的总空间大小,单位仍为KB。
以上就是MSSQL服务器查看每张表占用空间大小的两种方法,通过这两种方法,可以更加有效的掌握数据库中数据使用空间的分布及负载情况,以便合理的管理数据库,为系统提供最佳的运行环境。