39 lines
1.1 KiB
Transact-SQL
39 lines
1.1 KiB
Transact-SQL
-- If you need more information, here is a nice SQL script, which I use from time to time:
|
|
DECLARE @TabName varchar(100)
|
|
|
|
CREATE TABLE #temp (
|
|
TabName varchar(200), IndexName varchar(200), IndexDescr varchar(200),
|
|
IndexKeys varchar(200), IndexSize int
|
|
)
|
|
|
|
DECLARE cur CURSOR FAST_FORWARD LOCAL FOR
|
|
SELECT name FROM sysobjects WHERE xtype = 'U'
|
|
|
|
OPEN cur
|
|
|
|
FETCH NEXT FROM cur INTO @TabName
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
INSERT INTO #temp (IndexName, IndexDescr, IndexKeys)
|
|
EXEC sp_helpindex @TabName
|
|
|
|
UPDATE #temp SET TabName = @TabName WHERE TabName IS NULL
|
|
|
|
FETCH NEXT FROM cur INTO @TabName
|
|
END
|
|
|
|
CLOSE cur
|
|
DEALLOCATE cur
|
|
|
|
DECLARE @ValueCoef int
|
|
SELECT @ValueCoef = low FROM Master.dbo.spt_values WHERE number = 1 AND type = N'E'
|
|
|
|
UPDATE #temp SET IndexSize =
|
|
((CAST(sysindexes.used AS bigint) * @ValueCoef)/1024)/1024
|
|
FROM sysobjects INNER JOIN sysindexes ON sysobjects.id = sysindexes.id
|
|
INNER JOIN #temp T ON T.TabName = sysobjects.name AND T.IndexName = sysindexes.name
|
|
|
|
SELECT * FROM #temp
|
|
ORDER BY TabName, IndexName
|
|
|
|
DROP TABLE #temp |