2011-05-18 12 views
6

Es fácil verificar los tamaños de almacenamiento de tablas e índices, puede hacer clic con el botón derecho en el objeto de la tabla en el explorador SSMS y listo, los detalles aparecen en una ventana emergente.¿Cómo verifico el tamaño de una vista indexada en SQL Server?

Pero como las Vistas indizadas se muestran de la misma manera que las Vistas normales, no hay información de almacenamiento disponible en SSMS para mostrarme el tamaño actual ocupado en el disco.

enter image description here

¿Hay una manera manifestaron alteraciones para calcular el tamaño (digamos, a través de un sistema de SP o método similar)?

Gracias.

Respuesta

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

Gracias Martin, funcionaba un lujo. –

3

Puede utilizar esta consulta aquí para encontrar sus datos para cualquier vista indizada dado:

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 

da una salida como algo

ViewName  IndexName  RowCounts TotalSpaceKB UsedSpaceKB DataSpaceKB 
YourViewName IX_YourView  1771   592   552   536 
Cuestiones relacionadas