Como faço para verificar o tamanho de uma visualização indexada no SQL Server?
-
15-11-2019 - |
Pergunta
É fácil verificar tamanhos de armazenamento para tabelas e índices, você pode clicar com o botão direito do mouse no objeto da tabela no SSMS Explorer e ao Voila, os detalhes aparecem em um pop-up agradável.
Mas, como as visualizações indexadas são exibidas da mesma forma que as visualizações normais, não há informações de armazenamento disponíveis em SSMs para mostrar-me o tamanho atual retomado no disco.
Existe uma maneira alterada de calcular o tamanho (digamos através de um Sistema SP ou método similar)?
obrigado.
Solução
EXEC sys.sp_spaceused @objname = N'dbo.YourView'
Outras dicas
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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow