【问题标题】:How do I check the size of an indexed view in SQL Server?如何在 SQL Server 中检查索引视图的大小?
【发布时间】:2011-08-28 05:08:47
【问题描述】:

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

但由于索引视图与普通视图显示相同,因此 SSMS 中没有可用的存储信息来显示当前占用的磁盘大小。

是否有其他计算大小的方法(例如通过系统 SP 或类似方法)?

谢谢。

【问题讨论】:

    标签: sql-server ssms indexed-view system-stored-procedures


    【解决方案1】:
    EXEC sys.sp_spaceused @objname = N'dbo.YourView'
    

    【讨论】:

      【解决方案2】:

      您可以在此处使用此查询来查找任何给定索引视图的数据:

      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
      

      提供类似的输出

      ViewName      IndexName     RowCounts  TotalSpaceKB  UsedSpaceKB  DataSpaceKB
      YourViewName  IX_YourView     1771         592           552          536
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-15
        • 2012-03-01
        • 2011-02-16
        • 2010-09-23
        • 1970-01-01
        • 2012-02-18
        • 2011-07-16
        • 1970-01-01
        相关资源
        最近更新 更多