Monday, July 31, 2017

▷ Mssql table size (mssql 테이블 크기)

[ Mssql table size ]


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 ''


PRINT 'By Size Descending'

-------커서를 할당하고 오픈후 작업을 시작한다.-------
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
-------커서작업을 마치고 닫는다.-------

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'

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
--임시테이블을 드롭시킨다.
go

No comments:

Post a Comment

◈ Recent Post

▷ UITest demo with TestOne (Mobile, Keypad and Drag until found tip)

[ UITest Demo Environment ] 1. UITest Solution: TestOne 2. Description 데모 설명    How to use keypad, and to drag until found.     키패드를...

◈ Popular Posts