본문 바로가기
Database & Bigdata/MS-SQL

[MS-SQL] 파일 그룹 이란? (MDF/NDF/LDF)

by jionee 2022. 11. 3.
SMALL

MS-SQL에서 관리되는 파일은 MDF/NDF/LDF 3가지 타입으로 나뉘어짐

 

 

 

 

1. Primary Data File (.mdf)

  • 주 데이터 파일은 DB의 시작점이며, DB의 다른 파일을 가리키고 있음
  • 실제 데이터들이 저장되는 파일
  • 모든 DB는 Primary Data file을 가지고 있음

 

2. Secondary Data File (.ndf)

  • 보조 데이터 파일은 주 데이터 파일이 아닌 모든 데이터 파일을 구성함
  • 보조 데이터 파일은 없을 수도 있고, 여러 개 있을 수도 있음

 

3. Log File (.ldf)

  • 로그 파일에는 데이터베이스를 복구하는 데 사용되는 모든 로그 정보가 들어있음
  • 데이터베이스마다 적어도 하나의 로그 파일이 있어야함

 

 

 

 

 

Question 1
주 데이터 파일인 .mdf 파일과 함께 보조 데이터 파일인 .ndf를 생성하는 이유?

데이터 파일에 저장 시 파일 그룹을 나눠 저장하면 하나의 파일 그룹을 사용할 때 보다 좋은 효과를 낼 수 있음

 

ex) 데이터베이스 테이블 10개 중 3개의 테이블을 가장 많이 사용하고 나머지 7 테이블은 거의 사용 하지 않는다고 하면

-> 데이터 베이스를 파일 그룹으로 생성하고 많이 사용하는 3개의 테이블을 프라이머리 파일 그룹에 생성 물리적인 하나의 디스크에 구축

-> 자주 사용하지 않는 7개의 테이블을 보조 파일 그룹에 생성해 또 다른 물리적인 디스크에 구축 

 

물리적으로 다른 디스크를 사용하게 되니 하나의 디스크를 사용할 때 마다 데이터 파일 사용의 경쟁이 줄 것이므로

데이터 베이스 성능을 높힐 수 있음

 

 

 

 

Question 2
로그 파일을 쓰는 이유는 ?

완전한 데이터, 즉 데이터 베이스의 무결성 및 복구를 위해

보통 DML 작업을 하기 전에 트랜잭션 로그 파일 (ldf)에 기록하는 작업을 먼저 하게 되는데

이를 Write Ahead Logging(미리쓰기 로깅)이라고 함

트랜잭션 중 비정상적으로 종료되었을 때 트랜잭션 로그 파일을 통해 해결 할 수 있음

 

 

 

 

댓글