SQL Server 2005 - Как узнать размер диска определенного индекса - PullRequest
5 голосов
/ 08 ноября 2010

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

Ответы [ 3 ]

9 голосов
/ 08 ноября 2010
USE master

SELECT SUM(used_page_count) * 8 AS [Size in kb]
FROM sys.indexes i 
JOIN sys.dm_db_partition_stats p ON p.object_id = i.object_id AND i.index_id = p.index_id
WHERE i.object_id=OBJECT_ID('dbo.spt_values') AND i.name='ix2_spt_values_nu_nc'
2 голосов
/ 17 февраля 2014

Узнайте размер диска индекса :

SELECT
    OBJECT_NAME(I.OBJECT_ID) AS TableName,
    I.name AS IndexName,   
    8 * SUM(AU.used_pages) AS 'Index size (KB)',
    CAST(8 * SUM(AU.used_pages) / 1024.0 AS DECIMAL(18,2)) AS 'Index size (MB)'
FROM
    sys.indexes I
    JOIN sys.partitions P ON P.OBJECT_ID = I.OBJECT_ID AND P.index_id = I.index_id
    JOIN sys.allocation_units AU ON AU.container_id = P.partition_id
WHERE 
    OBJECT_NAME(I.OBJECT_ID) = '<TableName>'    
GROUP BY
    I.OBJECT_ID,    
    I.name
ORDER BY
    TableName
0 голосов
/ 10 сентября 2012

Вы можете использовать хранимую процедуру "sp_spaceused". он скажет вам, сколько места используется для индекса, а также пространство, используемое для данных.

USE AdventureWorks2012;
GO
EXEC sp_spaceused 'Purchasing.Vendor';
GO

Подробнее: http://msdn.microsoft.com/en-us/library/ms188776.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...