sql-server – 如何确定SQL Server数据库中表的大小

前端之家收集整理的这篇文章主要介绍了sql-server – 如何确定SQL Server数据库中表的大小前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否有任何内置函数/存储过程/查询有助于检索有关sql Server数据库中MyTable大小的信息?

解决方法

对于单个表,您可以使用
sp_spaceused MyTable

对于数据库中的所有表,您可以将其与sp_msforeachtable一起使用,如下所示

CREATE TABLE #temp (
table_name sysname,row_count INT,reserved_size VARCHAR(50),data_size VARCHAR(50),index_size VARCHAR(50),unused_size VARCHAR(50))
SET NOCOUNT ON
INSERT #temp
EXEC sp_msforeachtable 'sp_spaceused ''?'''
SELECT a.table_name,a.row_count,COUNT(*) AS col_count,a.data_size
FROM #temp a
INNER JOIN information_schema.columns b
ON a.table_name collate database_default
= b.table_name collate database_default
GROUP BY a.table_name,a.data_size
ORDER BY CAST(REPLACE(a.data_size,' KB','') AS integer) DESC
DROP TABLE #temp

猜你在找的MsSQL相关文章