Pregunta

Es fácil verificar los tamaños de almacenamiento para tablas e índices, puede hacer clic con el botón derecho en el objeto de tabla en SSMS Explorer y Voila, los detalles aparecen en una bonita ventana emergente.

Pero, dado que las vistas indexadas se muestran las mismas que las vistas normales, no hay información de almacenamiento disponibles en SSM para mostrarme el tamaño actual recogido en el disco.

ingrese la descripción de la imagen aquí

¿Existe una forma de alteración de calcular el tamaño (por ejemplo, a través de un sistema SP o método similar)?

gracias.

¿Fue útil?

Solución

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

Otros consejos

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top