查询 SQL Server 数据库某表占用物理内存大小的 SQL 语句可以使用以下方法:

方法一:使用 'sp_spaceused' 存储过程

USE YourDatabaseName;
EXEC sp_spaceused 'YourTableName';

方法二:使用 'sys.dm_db_partition_stats' 视图

USE YourDatabaseName;
SELECT 
    OBJECT_NAME(object_id) AS TableName,
    SUM(reserved_page_count) * 8 AS TotalSizeKB
FROM sys.dm_db_partition_stats
WHERE 
    object_id = OBJECT_ID('YourTableName')
GROUP BY object_id;

方法三:使用 'sys.dm_db_index_physical_stats' 函数

USE YourDatabaseName;
DECLARE @object_id INT;
SET @object_id = OBJECT_ID('YourTableName');

SELECT 
    OBJECT_NAME(s.object_id) AS TableName,
    SUM(ps.used_page_count) * 8 AS TotalSizeKB
FROM sys.dm_db_index_physical_stats(DB_ID(), @object_id, NULL, NULL, 'DETAILED') ps
JOIN sys.dm_db_partition_stats s ON ps.object_id = s.object_id AND ps.index_id = s.index_id
WHERE 
    ps.index_level = 0
GROUP BY s.object_id;

请将 'YourDatabaseName' 替换为你要查询的数据库名,'YourTableName' 替换为你要查询的表名。以上查询语句将返回表的总大小(以 KB 为单位)。

注意:以上方法只能获取表占用的物理内存大小,并不包括索引和其他相关对象的大小。


原文地址: https://www.cveoy.top/t/topic/o5gc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录