Question

Ses tailles de stockage faciles à vérifier pour les tables et les index, vous pouvez cliquer avec le bouton droit de la souris sur l'objet de la table sur SSMS Explorer et Voila, les détails apparaissent dans une belle popup.

Mais puisque les vues indexées sont identiques à des vues normales, il n'y a pas d'informations de stockage disponibles dans SSMS pour me montrer la taille actuelle prise sur le disque.

Entrez la description de l'image ici

Y a-t-il un moyen d'altération de calculer la taille (disons via un système SP ou une méthode similaire)?

merci.

Était-ce utile?

La solution

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

Autres conseils

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top