Data Modeling Evangelist Kaien Kim's Blog
[SQLServer] 데이터베이스 용량관리 본문
USE AdventureWorks
GO
EXEC sp_helpfile -------- 1)
EXEC sp_spaceused -------- 2)
DBCC sqlperf(logspace) -------- 3)
ALTER DATABASE AdventureWorks
MODIFY FILE
(
NAME = AdventureWorks_Data,
SIZE = 500
)
EXEC sp_helpfile -------- 4)
ALTER DATABASE AdventureWorks
MODIFY FILE
(
NAME = AdventureWorks_Data,
FILEGROWTH = 100,
MAXSIZE = 500
)
GO -------- 5)
ALTER DATABASE AdventureWorks
MODIFY FILE
(
NAME = AdventureWorks_Log,
FILEGROWTH = 10,
MAXSIZE = 200
)
GO -------- 6)
EXEC sp_helpfile -------- 7)
DBCC SHRINKFILE(AdventureWorks_Data,200) -------- 8)
1) 데이터 파일 공통 정보 확인
아래와 같이 데이터 파일의 논리적 이름과 트랜잭션 로그 파일의 논리적 이름을 알 수 있다.
- filename : 파일의 경로와 실제이름
- filegroup
- size : 현재 파일 크기
- maxsize : 파일의 최대크기
- growth : 파일의 증가설정
2) 데이터 파일 사용량 확인
- database size : 데이터 파일과 트랜젝션 로그파일의 용량을 합한 값
- unallocated space : 데이터 파일의 남아있는 용량
- data size, index size : 데이터 파일 내에서 data와 index별 사용량
- unused : 운영상 데이터베이스의 개체에 예약되었지만 아직 사용되지 않은 공간
3) 트랙잭션 로그 파일 사용량 확인
AdventureWorks의 경우 약 1.99MB의 현재 파일 크기를 가지고 있으며 약 39%가 사용 중인 것을 알 수 있다.
4) 데이터 베이스 용량 늘리기
300 -> 500으로 변경
스크립트 실행 후, EXEC sp_helpfile로 변경 내역 확인
5) 데이터 파일 최대 크기와 자동 증가 설정 변경
6) 로그파일 최대 크기돠 자동 증가 설정 변경
7) 변경 내역 확인
8) 데이터베이스 용량 줄이기