SET NOCOUNT ON
--정보를 저장할 임시 테이블을 만든다.
CREATE TABLE #TBLSize
(Tblname varchar(80),
TblRows int,
TblReserved varchar(80),
TblData varchar(80),
TblIndex_Size varchar(80),
TblUnused varchar(80)) ;
DECLARE @DBname varchar(80)
DECLARE @tablename varchar(80)
SELECT @DBname = DB_NAME(DB_ID())
PRINT 'User Table size Report for (Server / Database): ' + @@ServerName + ' / ' + @DBName
PRINT ''
-------커서를 할당하고 오픈후 작업을 시작한다.-------
DECLARE TblName_cursor CURSOR FOR
SELECT NAME
FROM sysobjects
WHERE xType = 'U'
OPEN TblName_cursor
FETCH NEXT FROM TblName_cursor
INTO @tablename
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO #tblSize(Tblname, TblRows, TblReserved, TblData, TblIndex_Size, TblUnused)
EXEC Sp_SpaceUsed @tablename
-- 다음 항목의 테이블정보를 가져와서 인서트한다.
FETCH NEXT FROM TblName_cursor
INTO @tablename
END
CLOSE TblName_cursor
DEALLOCATE TblName_cursor
-------커서작업을 마치고 닫는다.-------
PRINT 'By Size Descending'
-- 1.테이블이 차지하는 용량순으로 출력
SELECT CAST(Tblname as Varchar(30)) 'Table',
CAST(TblRows as Varchar(14)) 'Row Count',
CAST(LEFT(TblReserved, CHARINDEX(' KB', TblReserved)) as int) 'Total Space (KB)',
CAST(TblData as Varchar(14)) 'Data Space',
CAST(TblIndex_Size as Varchar(14)) 'Index Space',
CAST(TblUnused as Varchar(14)) 'Unused Space'
FROM #tblSize
Order by 'Total Space (KB)' Desc
PRINT ''
PRINT 'By Table Name Alphabetical'
-- 2.테이블 이름순으로 출력
SELECT CAST(Tblname as Varchar(30)) 'Table',
CAST(TblRows as Varchar(14)) 'Row Count',
CAST(LEFT(TblReserved, CHARINDEX(' KB', TblReserved)) as int) 'Total Space (KB)',
CAST(TblData as Varchar(14)) 'Data Space',
CAST(TblIndex_Size as Varchar(14)) 'Index Space',
CAST(TblUnused as Varchar(14)) 'Unused Space'
FROM #tblSize
Order by 'Table'
--DROP TABLE #TblSize
'Server Story.... > Windows Server' 카테고리의 다른 글
xp 에서 듀얼코어 100 % 사용하기.. (0) | 2010.11.02 |
---|---|
Windows 별 최대 메모리 크기(Size) (0) | 2010.11.02 |
서버 시간동기화 관련. (0) | 2010.08.11 |
Windows XP SP2/2003 SP1 에서의 MS DTC 설정 (0) | 2010.05.28 |
윈도우 포트 번호대 서비스 목록 (0) | 2010.05.28 |