Domanda

È facile controllare le dimensioni di archiviazione per tabelle e indici, è possibile fare clic con il pulsante destro del mouse sull'oggetto tabella su SSMS Explorer e VoiLa, i dettagli appaiono in un bel popup.

Ma dal momento che le viste indicizzate vengono visualizzate le viste normali, non vi sono informazioni di archiviazione disponibili in SSMS per mostrarmi la dimensione corrente prelevata su disco.

Inserire l'immagine Descrizione qui

C'è un modo alterato per calcolare la dimensione (ad esempio tramite un metodo SP o simile del sistema)?

Grazie.

È stato utile?

Soluzione

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

Altri suggerimenti

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top