如何确定我在 SQL Server 数据库中的表的大小

Hei*_*erg 33 sql-server table

是否有任何内置函数/存储过程/查询有助于检索有关MyTableSQL Server 数据库中大小的信息?

Mar*_*son 50

如果您不想编写脚本,还可以在 SSMS 中打开未充分利用的“对象资源管理器详细信息”(快捷键 F7)。

顶级对象资源管理器详细信息

从顶层,打开 Tables 文件夹以获取数据库中所有表的列表。

您可能需要自定义列以查看已用空间。这可以通过右键单击标题行并选择要显示的列来完成。

SSMS 中的表数据大小

对象资源管理器详细信息中还有更多此类数据可用。

  • 比上面的 t-sql 方法好得多(这对我不起作用) (3认同)

Aas*_*lah 40

对于单个表,您可以使用

sp_spaceused MyTable
Run Code Online (Sandbox Code Playgroud)

对于数据库中的所有表,您可以使用它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.row_count, a.data_size
ORDER BY CAST(REPLACE(a.data_size, ' KB', '') AS integer) DESC
DROP TABLE #temp
Run Code Online (Sandbox Code Playgroud)


Sir*_*lot 22

在 SSMS 中右键单击“数据库”,选择“报告”、“标准报告”、“顶级表的磁盘使用情况”。

该报告将为您提供每个表使用的行数和千字节数。