Below Store Procedure Provides the Indexes and its sizes for the given table
CREATE PROCEDURE getIndexSizes ( @tblName VARCHAR(500) )
AS
EXECUTE AS CALLER;
BEGIN
SELECT OBJECT_NAME(i.object_id) AS TableName ,
i.name AS IndexName ,
i.index_id AS IndexID ,
( 8 * SUM(a.used_pages) ) / 1024 AS 'Indexsize(MB)'
FROM sys.indexes AS i
JOIN sys.partitions AS p ON p.object_id = i.object_id
AND p.index_id = i.index_id
JOIN sys.allocation_units AS a ON a.container_id = p.partition_id
WHERE OBJECT_NAME(i.object_id) = @tblName
GROUP BY i.object_id ,
i.index_id ,
i.name
ORDER BY OBJECT_NAME(i.object_id) ,
i.index_id;
END;
