SQL查看數據庫所用用戶表數量和使用的空間

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
相關文章
相關標籤/搜索