-->
Здесь я публикую небольшие мои заметки, а также интересные ссылки, все что связанно с моей профессией. Для перехода на персональный сайт, используйте ссылку http://k-semenenko.blogspot.com

четверг, 6 октября 2011 г.

Вывод данных по занимаемому дисковуму пространству для каждой из таблиц SQL Server 2008


Источник

http://www.4guysfromrolla.com/webtech/032906-1.2.shtml

IF object_id(N'tempdb..#tblResults', N'u') IS NOT NULL
    DROP TABLE #tblResults

CREATE TABLE #tblResults (
    [name] VARCHAR(60)
    ,[rows] INT
    ,[reserved] VARCHAR(18)
    ,[reserved_int] INT DEFAULT(0)
    ,[data] VARCHAR(18)
    ,[data_int] INT DEFAULT(0)
    ,[index_size] VARCHAR(18)
    ,[index_size_int] INT DEFAULT(0)
    ,[unused] VARCHAR(18)
    ,[unused_int] INT DEFAULT(0)
    )

EXEC sp_MSforeachtable @command1 = "INSERT INTO #tblResults

           ([name],[rows],[reserved],[data],[index_size],[unused])

          EXEC sp_spaceused '?'"

-- Strip out the " KB" portion from the fields
UPDATE #tblResults
SET [reserved_int] = CAST(SUBSTRING([reserved], 1, CHARINDEX(' ', [reserved])) AS INT)
    ,[data_int] = CAST(SUBSTRING([data], 1, CHARINDEX(' ', [data])) AS INT)
    ,[index_size_int] = CAST(SUBSTRING([index_size], 1, CHARINDEX(' ', [index_size])) AS INT)
    ,[unused_int] = CAST(SUBSTRING([unused], 1, CHARINDEX(' ', [unused])) AS INT)

SELECT *
FROM #tblResults
ORDER BY reserved_int
    ,data_int DESC