문제

테이블 및 인덱스의 스토리지 크기를 쉽게 확인하기 쉬운 SSMS 탐색기 및 voila에서 테이블 개체를 마우스 오른쪽 단추로 클릭하면 세부 정보가 멋진 팝업에 나타납니다.

그러나 인덱싱 된 뷰는 정상적인 뷰와 동일하게 표시되므로 SSMS에서는 디스크에서 현재 크기를 보여주는 SSMS에 저장 정보가 없습니다.

여기에 이미지 설명

시스템을 계산하는 변형 된 방법이 있습니까 (시스템 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