![[MsSQL] 자주 쓰는 쿼리 - Data File Size, Data File 경로 확인 (MDF, NDF)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdYJI2L%2FbtsrYVeGqeC%2FzrSiAByyKFqSrFxeJlQrvk%2Fimg.png)

Intro
안녕하세요.
초보 DBA 다뉴입니다.
데이터베이스를 사용하다 보면 역시나 마주하게 될 문제, 바로 용량 이슈인데요.
MsSQL의 MDF, NDF라는 데이터베이스 파일에 데이터를 저장합니다.
MsSQL의 파일 구조에 대해서는 아래의 글을 참고해주세요!
[MsSQL] Database File(Data File, Log File) / File Group
Intro 안녕하세요. 초보 DBA 다뉴입니다. 오늘은 MsSQL의 데이터베이스 파일과 파일 그룹에 대해 알아보도록 하겠습니다. Database File File의 종류 데이터베이스 파일의 종류로는 크게 데이터 파일(Data
da-new.tistory.com
각 데이터베이스의 MDF, NDF가 얼마 만큼의 용량을 사용하는지,
또 어느 경로에 파일이 위치하고 있는지 확인하는 쿼리를 자주 사용하게 되는데요.
아래에서 쿼리에 대한 자세한 내용 알아보도록 하죠.
Query
Data File 관련 정보 조회 쿼리
use [DTABASE NAME]
select b.groupname as 'File Group',
a.name as 'File Name',
a.filename as 'File Path',
convert(decimal(15, 2),
round(a.size / 128.000, 2)) as 'Data File Size (MB)',
convert(decimal(15, 2),
round(fileproperty(a.name, 'spaceused') / 128.000, 2)) as 'Used Size(MB)',
convert(decimal(15, 2),
round((a.size - fileproperty(a.name, 'spaceused')) / 128.000, 2)) as 'Available Size (MB)'
from SYS.SYSFILES as a with(nolock)
inner join SYS.SYSFILEGROUPS as b with(nolock)
on a.groupid = b.groupid
[DATABASE NAME] : data file 관련 정보를 확인하고자 하는 Database
컬럼 설명
- File Group : Data File 이 속한 File Group의 명칭
- File Name : Data File의 논리적 명칭
- File Path : Data File이 위치하는 경로
- Data File Size (MB) : File이 차지하고 있는 총 용량
- Used Size (MB) : 총 용량 중 사용 중인 용량
- Available Size (MB) : 사용 중인 용량을 제외한 남은 용량
TEST_BAN이라는 제 데이터베이스의 MDF, NDF 파일의 위치와 용량에 대해서 한번 확인해 봤습니다.
사용 시스템 테이블
1. SYS.SYSFILES
sys.sysfiles(Transact-SQL) - SQL Server
sys.sysfiles(Transact-SQL)
learn.microsoft.com
데이터베이스의 파일에 대한 기본적인 정보를 가져오는 시스템 테이블 입니다.
해당 시스템 테이블을 볼때 주의할 점이 있는데요.
size 컬럼의 크기는 1당 8kb 의 크기입니다.
위에 쿼리에서도 보셨듯이 size / 128을 하여 MB로 만드는 모습을 볼 수 있는데요.
이미 8kb의 묶음으로 되어있어 그렇습니다.
2. SYS.SYSFILEGROUPS
sys.sysfilegroups (Transact-SQL) - SQL Server
sys.sysfilegroups (Transact-SQL)
learn.microsoft.com
File Group에 대한 정보가 있는 시스템 테이블 입니다.
Outro
데이터 파일의 크기와 경로 소속된 파일 그룹을 확인 할 수 있는 쿼리에 대해서 간단하게 알아봤습니다.
데이터 파일 크기의 관리는 DB관리의 기본이 되므로 매우 중요합니다.
다들 사이즈를 한번 쯤은 확인 해보고, 상황에 맞는 조치를 취하셨으면 좋겠네요.
감사합니다.
'DATABASE > MsSQL' 카테고리의 다른 글
[MsSQL] OUTPUT - Update 사용 시, 변경 전/후 행 반환하기 (deleted/inserted) (0) | 2023.09.07 |
---|---|
[MSSQL] 커서(CURSOR) - 행(ROW) 단위 처리의 사용 법 (0) | 2023.09.06 |
[MsSQL] OUTPUT - Delete 사용 시, 삭제 된 행 반환하기 (deleted) (0) | 2023.09.05 |
[MsSQL] OUTPUT - Insert 사용 시, 삽입 된 행 반환하기 (Inserted) (0) | 2023.09.04 |
[MsSQL] Exception / Throw 사용 시 주의 사항 - rollback (1) | 2023.08.05 |
[MsSQL][SSIS] SSIS 설치 방법 - Visual Studio 2012 Shell (1) | 2023.08.02 |
[MsSQL] Table / Column Comment - 코멘트, 설명 달기 (1) | 2023.08.01 |
[MsSQL] Exception / Try~Catch 문 활용 -Transaction, Throw (1) | 2023.07.30 |

초보 DBA 이야기입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!