它易于检查表和索引的存储大小,可以右键单击SSMS资源管理器和Voila上的表对象,详细信息显示在一个很好的弹出窗口中。

但由于索引视图与正常视图相同,因此在SSM中没有可容易的存储信息来向我展示在磁盘上占用的当前大小。

是否有改变的方式来计算大小(通过系统SP或类似方法说)?

谢谢。

有帮助吗?

解决方案

EXEC sys.sp_spaceused @objname = N'dbo.YourView'

其他提示

You can use this query here to find your data for any given indexed view:

SELECT 
    v.NAME AS ViewName,
    i.name AS IndexName,
    p.rows AS RowCounts,
    SUM(a.total_pages) * 8 AS TotalSpaceKB, 
    SUM(a.used_pages) * 8 AS UsedSpaceKB, 
    SUM(a.data_pages) * 8 AS DataSpaceKB
FROM 
    sys.views v
INNER JOIN      
    sys.indexes i ON v.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 
    v.Name = 'YourViewNameHere' --View name only, not 'schema.viewname'
    AND
    i.index_id = 1   -- clustered index, remove this to see all indexes
GROUP BY 
    v.NAME, i.object_id, i.index_id, i.name, p.Rows

Gives an output something like

ViewName      IndexName     RowCounts  TotalSpaceKB  UsedSpaceKB  DataSpaceKB
YourViewName  IX_YourView     1771         592           552          536
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top