2011-05-18 26 views
6

Tablolar ve Dizinler için depolama boyutlarını kontrol etmek kolay, SSMS gezgini ve voila üzerindeki tablo nesnesini sağ tıklatabilir, ayrıntılar güzel bir açılır pencerede görünür.SQL Server'da dizinlenmiş görünümün boyutunu nasıl denetlerim?

Ancak, Dizine Eklenmiş Görünümler Normal Görünümler ile aynı görüntülendiğinden, diskte çekilen geçerli boyutu göstermek için SSMS'de kullanılabilir bir depolama bilgisi yoktur.

enter image description here

boyutu (bir sistem SP ya da benzer bir yöntemle demek) hesaplamak için bir alterate yolu var mı?

Teşekkürler.

cevap

13
EXEC sys.sp_spaceused @objname = N'dbo.YourView' 
+0

Teşekkür Martin gibi bir çıkış şey verir, bir tedavi çalıştı. –

3

Herhangi bir belirli endeksli görünüm için verilerinizi bulmak için buraya bu sorguyu kullanabilirsiniz:

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 
İlgili konular