--파일그룹별
개체정보
SELECT
'FileGroup Name' = sfg.GroupName,
'Object Name' = CASE si.IndID
WHEN 1 THEN so.Name
ELSE si.Name END,
'Object Type' = CASE
WHEN si.IndID < 2 THEN 'Table'
ELSE 'Index'END,
'Table Name'= CASE
WHEN si.IndID > 1 THEN so.Name
ELSE ' '
END,
'System FileName' = sf.Name
FROM sysfilegroups sfg
INNER JOIN sysfiles sf ON sfg.groupid = sf.groupid
INNER JOIN sysindexes si ON
sfg.groupid =
si.groupid
INNER JOIN sysobjects so ON
si.id =
so.id
WHERE so.type = 'U'
AND si.Name NOT LIKE '#_%' ESCAPE '#'
AND so.Name NOT IN ('dtproperties')
ORDER BY 1, 3 DESC
GO
--파일
그룹별, 파일 수, 사용한 크기, 현재 크기, 최대 크기 출력
SELECT
a.FileGroupName,
b.[FileCount],
a.[UsedSize(MB)],
b.[FileNowSize(MB)],
CASE WHEN C.MinCheck = -1 THEN 'Unlimited' ELSE
CAST(b.[MaxSize(MB)] AS
VARCHAR(100))
END as
[MaxSize(MB)]
FROM (
SELECT --파일
그룹별 크기(실제 사용 크기)
'FileGroupName' =
sfg.GroupName,
sfg.GroupId,
SUM(si.used * 8.0/1024) AS [UsedSize(MB)]
FROM sysfilegroups sfg
INNER JOIN sysindexes si ON
sfg.groupid =
si.groupid
INNER JOIN sysobjects so ON
si.id =
so.id
WHERE so.type = 'U'
AND si.Name not like '#_%' ESCAPE '#'
AND so.Name not in ('dtproperties')
GROUP BY sfg.GroupName, sfg.GroupId
) a
INNER JOIN
(
SELECT --파일
그룹별 크기(잡혀있는 크기)
GroupId,
SUM(size*8/1024.0) AS
[FileNowSize(MB)],
SUM(maxsize*8/1024.0) AS
[MaxSize(MB)],
COUNT(*) AS [FileCount]
FROM sysfiles
WHERE GroupId>0
GROUP BY GroupId
) b ON a.GroupId = b.GroupId
LEFT JOIN
(
SELECT --파일그룹중MaxSize = Limited 인 경우확인
GroupId, MIN(maxsize) as
MinCheck
FROM sysfiles
WHERE GroupId>0
GROUP BY GroupId
) c ON A.GroupId = c.GroupId
GO
'연구개발 > DBA' 카테고리의 다른 글
SS2000 - SQL Errorlog 모니터링 하기 (0) | 2010.07.27 |
---|---|
데이터를 붙여서(?) 출력하기 (0) | 2010.07.27 |
모든 DB의 파일 크기를 알아내는 스크립트 (0) | 2010.07.27 |
SS2005 - Optimistic Concurrency 예제 (0) | 2010.07.27 |
SQL Server 2005 업그레이드 핸드북입니다..(한글) (0) | 2010.07.27 |