ben (aynı zamanda XML endeksler boyutunu hesaplar, ... varsa) buna benzer bir şey
SELECT S.name,
SO.name,
SIT.internal_type_desc,
rows = CASE WHEN GROUPING(SIT.internal_type_desc) = 0 THEN SUM(SP.rows)
END,
TotalSpaceGB = SUM(SAU.total_pages) * 8/1048576.0,
UsedSpaceGB = SUM(SAU.used_pages) * 8/1048576.0,
UnusedSpaceGB = SUM(SAU.total_pages - SAU.used_pages) * 8/1048576.0,
TotalSpaceKB = SUM(SAU.total_pages) * 8,
UsedSpaceKB = SUM(SAU.used_pages) * 8,
UnusedSpaceKB = SUM(SAU.total_pages - SAU.used_pages) * 8
FROM sys.objects SO
INNER JOIN sys.schemas S ON S.schema_id = SO.schema_id
INNER JOIN sys.internal_tables SIT ON SIT.parent_object_id = SO.object_id
INNER JOIN sys.partitions SP ON SP.object_id = SIT.object_id
INNER JOIN sys.allocation_units SAU ON (SAU.type IN (1, 3)
AND SAU.container_id = SP.hobt_id)
OR (SAU.type = 2
AND SAU.container_id = SP.partition_id)
WHERE S.name = 'schema'
--AND SO.name IN ('TableName')
GROUP BY GROUPING SETS(
(S.name,
SO.name,
SIT.internal_type_desc),
(S.name, SO.name), (S.name),())
ORDER BY S.name,
SO.name,
SIT.internal_type_desc;
kullanmak
Bu genellikle sys.fulltext_index_fragments
'dan daha yüksek sayılara sahip olur, ancak tablonun sys.partitions
ile birleştirildiğinde, EXEC sys.sp_spaceused @objname = N'schema.TableName';
'dan döndürülen numaralara kadar ekler.
SQL Server 2016 ile test edilmiştir ancak dokümantasyon 2008.
Belki bu yararlı olabilir çünkü mevcut olması gerektiğini söylüyor: http://technet.microsoft.com/en-us/library/ms190370.aspx (IndexSize özellik) –
* IndexSize * aslında FTS Kataloğu'nun boyutunu döndürür ve bir katalogun birden fazla dizini olabilir. Her indeksin büyüklüğünü tek tek istiyorum. – Poli