주의 : 이 작업은 MS SQL 2005에만 해당 되며, SQL 2000 혹은 다른 DBMS를 사용중이라면 아래의 쿼리 내용을 수정/편집 해야 한다.


MOSS 2007을 유지 관리하다 보면 데이터베이스 파일 크기에 대해 주의를 기울이게 되는데, 이를 미리 파악하기 위한 쿼리를 만들어 보았다. 하지만, 절대 아래의 쿼리가 튜닝된 데이터는 아니다. SELECT 만 좀 할 줄 아는 사람이 이것 저것 문서보면서 만든 쿼리이기 때문에, 성능상 문제가 되는 경우 알아서 편집을 해야 할 것이다.

아래의 쿼리를 Microsoft SQL Server Management Studio 에서 실행한다.

CREATE table #tot_resultSize
(
name sysname,
fileid smallint,
filename varchar(500),
filegroup varchar(50),
size nvarchar(13) null,
maxsize varchar(50),
growth varchar(50),
usage varchar(50)
)
DECLARE @cmd varchar(500);
DECLARE @name varchar(255);
--SET @name = 'WSS_CONTENT_80'
--INSERT #tot_resultSize  select @cmd = 'use ' +  quotename(@name) + N' exec sys.sp_helpfile'

DECLARE DBLits CURSOR
FOR select name from sys.databases ORDER by name;
OPEN DBLits;
FETCH NEXT FROM DBLits
INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
select @cmd = 'use ' +  quotename(@name) + N' exec sys.sp_helpfile'
INSERT INTO #tot_resultSize exec (@cmd)
FETCH NEXT FROM DBLits
INTO @name
END
CLOSE DBLits;
DEALLOCATE DBLits;
SELECT name, (convert(decimal, LEFT(size, LEN(size)-2))/1024/1024) as size FROM #tot_resultSize WHERE filegroup = 'PRIMARY'
SELECT name, (convert(decimal, LEFT(size, LEN(size)-2))/1024/1024) as size FROM #tot_resultSize WHERE filegroup IS NULL
DROP TABLE #tot_resultSize

이 내용을 보면 쿼리가 두 종류가 나오는데, 위쪽 결과 물이 데이터 파일, 아래쪽 결과물이 로그 파일들이다.


위의 목록을 모두 긁어서 복사한 뒤, Excel 파일에 붙여 넣기 해서, Excel로 정리해서 보면 보고하기도 좋고, 자신이 관리 처리하기 좋을 것이다.



728x90

+ Recent posts