SQL Server數據庫管理員一般硬盤空間奮鬥,不斷努力清理「表」,撰寫許多查詢,發現該表使用的硬盤空間。數據庫
本文介紹瞭如何查詢系統表的空間使用狀況,幫助數據庫管理員識別正在使用最多的空間,以便存檔舊數據和清除非必要的數據表。spa
1。登陸到SQL Server實例的[SQL Server 2005或SQL Server的2008]。code
2。瀏覽到你想得到空間信息數據庫。blog
3。複製並粘貼到您的查詢窗口的代碼,並執行它。class
4。檢查的結果,並查看選定的數據庫內的表空間登錄
DECLARE @TABLENM SYSNAME, @CNT INT, @TOPN INT DECLARE TABLE_SPACE CURSOR FAST_FORWARD FOR SELECT NAME FROM SYSOBJECTS WHERE XTYPE = 'U' SELECT @CNT = 0, @TOPN = 0 CREATE TABLE #TMPUSAGE ( NAME SYSNAME, ROWS INT, RESERVED VARCHAR(20), DATA VARCHAR(20), INDEX_SIZE VARCHAR(20), UNUSED VARCHAR(20) ) OPEN TABLE_SPACE FETCH NEXT FROM TABLE_SPACE INTO @TABLENM WHILE @@FETCH_STATUS = 0 AND @CNT <= @TOPN BEGIN INSERT INTO #TMPUSAGE EXEC SP_SPACEUSED @TABLENM, 'TRUE' IF @TOPN <> 0 SELECT @CNT = @CNT +1 FETCH NEXT FROM TABLE_SPACE INTO @TABLENM END CLOSE TABLE_SPACE DEALLOCATE TABLE_SPACE SELECT * FROM #TMPUSAGE ORDER BY CONVERT(INT,LEFT(RESERVED, LEN(RESERVED)- 3)) DESC IF (SELECT OBJECT_ID('TEMPDB..#TMPUSAGE') ) IS NOT NULL DROP TABLE #TMPUSAGE