일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- vscode
- 텐서플로우
- c#
- pymssql
- sql developer
- 오라클
- MSSQL
- Visual Studio Code
- django
- matplot
- Python
- MX Component
- 장고
- scrapy
- oracle
- 딥러닝
- 윈도우10
- 크롤링
- M2M
- windows10
- 티스토리 초대장
- rs422
- PYTHON MSSQL
- 파이썬
- MEAN Stack
- tensorflow
- MSSQL PYTHON
- rs485
- Serial
- 자본주의
Archives
- Today
- Total
안까먹을라고 쓰는 블로그
[MSSQL] 파일그룹 이란? 본문
반응형
MSSQL SERVER 데이터베이스에는 2가지의 데이터파일과 로그파일 총 3가지의 파일로 데이터베이스를 운영합니다.
- 데이터 파일 : 테이블, 인덱스, 저장 프로시저 및 뷰 등의 개체와 데이터를 저장합니다.
- 로그 파일 : 데이터베이스의 모든 트랜잭션을 복구하는 데 필요한 정보를 저장합니다.
로그파일은 트랜잭션 로그파일 이라고 흔히 부릅니다.
데이터 베이스 파일
파일 | 설명 |
Primary File (.mdf) | 데이터베이스의 시작 정보를 포함하며 데이터베이스의 나머지 파일을 관리합니다. 모든 데이터베이스에는 Primary File이 있습니다. 데이터 파일 확장명은 .mdf입니다. |
Secondary File (.ndf) | 선택적 사용자 정의 데이터 파일입니다. 각 파일을 서로 다른 디스크 드라이브에 배치하여 데이터를 여러 디스크에 분산 시킬 수 있습니다. 데이터 파일 확장명은 .ndf입니다. |
Transaction Log File (.ldf) | 이 로그에는 데이터베이스 복구에 사용되는 정보가 저장됩니다. 데이터베이스마다 최소한 하나의 트랙잭션 로그 파일이 필요합니다. 로그 파일 확장명은 .ldf입니다. |
기본적으로 데이터와 트랜잭션 로그는 단일 디스크 시스템을 처리하기 위해 동일한 드라이브와 경로에 생성이 됩니다.
이 선택은 실제 서비스 환경에서는 최적이 아닐 수도 있다고 합니다.
※ MS에서 권장하는 방법은 데이터(.mdf)와 로그파일(.ldf)은 서로 다른 디스크에 배치하는 것을 권장합니다(다중 I/O)
파일그룹
데이터 파일들을 관리상의 목적으로 분류하기 위해 파일 그룹의 이름을 지정할 수 있다. 그래야 파일 그룹별로 백업이나 복구를 할 수 있으며 데이터를 분산 배치하여 질의 성능을 향상시킬 수 있다.
파일 및 파일그룹 채우기 전략
파일그룹은 각 파일 그룹에 있는 모든 파일에 대해 "균형잡힌 채우기 전략"을 사용합니다.
파일그룹에 데이터를 쓸때 SQL SERVER 데이터베이스 엔진은 첫 번째 파일이 꽉 찰때까지 모든 데이터를 쓰지 않고,
"파일그룹 내의 각 파일에 해당 파일의 사용가능한 공간에 비례하는 양을 분배"하여 씁니다.
예를 들어
파일그룹1(FG1), 파일그룹2(FG2)가 있다고 할때
FG1에는 100MB의 빈 공간이 있고, FG2에는 200GB의 빈 공간이 있다면, 사용가능한 공간에 비례하여,
FG2에 FG1보다 약 2배의 데이터를 저장합니다. 이렇게 하면 두 파일이 꽉 차며 간단한 스트라이프가 수행됩니다.
파일 및 파일그룹 디자인 원칙
- 둘 이상의 데이터베이스에서 파일 또는 파일 그룹을 사용할 수 없습니다.
예를 들어 판매 데이터베이스의 데이터와 개체를 포함하는 sales.mdf 및 sales.ndf 파일은
다른 데이터베이스에서 사용할 수 없습니다. - 파일은 한 파일 그룹의 멤버만 될 수 있습니다.
- 트랜잭션 로그파일은 파일그룹의 일부가 될 수 없습니다.
SQL SERVER 권장사항
- 데이터베이스는 기본적으로 하나의 주 데이터 파일(.mdf)와 하나의 트랜잭션 로그파일(.ldf)만 있으면 됩니다.
- 여러 데이터 파일을 사용하는 경우 추가, 추가 파일에 대한 두 번째 파일 그룹을 만들고, 해당 파일그룹을 기본 파일그룹으로 만들어야 합니다. 이렇게 하면 주 파일에는 시스템 테이블과 개체만 있게 됩니다.
- 성능을 극대화하려면 가능한 여러 개의 사용 가능한 디스크에 파일이나 파일그룹을 만듭니다.
디스크 공간이 많이 필요한 개체는 여러 파일 그룹에 배치합니다. - 특정 물리적 디스크에 개체를 배치할 수 있도록 파일그룹을 사용합니다.
- 동일한 조인쿼리에서 사용되는 여러 테이블은 여러 파일그룹에 배치합니다.
조인 된 데이터는 병렬디스크 I/O를 사용하기 때문에 성능이 향상됩니다. - 자주 엑세스되는 테이블과 해당 테이블에 속한 비클러스터형 인덱스는 여러 파일그룹에 배치합니다.
여러 파일그룹을 사용하면 파일이 여러 물리적 디스크에 있을 경우 병렬 I/O가 수행되기 때문에 성능이 향상됩니다. - 트랜잭션 로그파일은 다른 파일 및 파일그룹과 동일한 물리적 디스크에 배치하지 마세요
반응형
'DataBase > MS SQL' 카테고리의 다른 글
[MSSQL] 백업(BACKUP) & 복원(RESTORE) (0) | 2024.03.05 |
---|---|
[MSSQL] - 함수 : 전/금/다음 월 시작/종료일자 구하기 (0) | 2023.12.28 |
[MSSQL] - 함수 : RPAD 구현 (0) | 2023.12.28 |
[MSSQL] - 함수 : LPAD 구현 (0) | 2023.12.28 |
[MSSQL] 함수 : 해당월의 마지막 일자 구하기 (0) | 2023.12.28 |
Comments