首页 > 解决方案 > SQL Server:如何获取统计信息大小?

问题描述

我想查询由CREATE STATISTICS:直方图和密度向量创建的所有结果的大小。

我尝试了以下代码段:

SELECT
    t.Name AS TableName,
    p.rows AS RowCounts,
    CAST(ROUND((SUM(a.used_pages) / 128.00), 2) AS NUMERIC(36, 2)) AS Used_MB,
    CAST(ROUND((SUM(a.total_pages) - SUM(a.used_pages)) / 128.00, 2) AS NUMERIC(36, 2)) AS Unused_MB,
    CAST(ROUND((SUM(a.total_pages) / 128.00), 2) AS NUMERIC(36, 2)) AS Total_MB
FROM 
    sys.stats t
INNER JOIN 
    sys.partitions p ON t.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
GROUP BY 
    t.Name, p.Rows
ORDER BY 
    t.Name;

但是“Used_MB”下的返回结果显然包含原始表大小。

有什么方法可以快速获取统计数据大小?

标签: sqlsql-servertsql

解决方案


推荐阅读