Как я могу проверить размер индексированного представления на SQL Server?

StackOverflow https://stackoverflow.com/questions/6047788

Вопрос

легко проверить размеры хранения для таблиц и индексов, вы можете щелкнуть правой кнопкой мыши объект таблицы на SSMS Explorer и Voila, детали появляются в хорошем всплыве.

Но поскольку проиндексированные представления отображаются так же, как обычные представления, в SSMS нет информации о хранении данных, чтобы показать мне текущий размер, предпринятый на диске.

Введите описание изображения здесь

Есть ли изменить способ расчета размера (скажем, через систему SP или аналогичный метод)?

спасибо.

Это было полезно?

Решение

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

Другие советы

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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top