최소한 모든 SQL Server 데이터베이스에는 데이터 파일과 로그 파일이라는 두 개의 운영 체제 파일이 있습니다. 데이터 파일에는 테이블, 인덱스, 저장 프로시저 및 뷰와 같은 데이터 및 개체가 포함됩니다. 로그 파일에는 데이터베이스의 모든 트랜잭션을 복구하는 데 필요한 정보가 포함되어 있습니다. 할당 및 관리 목적으로 파일 그룹에서 데이터 파일을 그룹화할 수 있습니다.
데이터베이스 파일
SQL Server 데이터베이스에는 다음 표와 같이 세 가지 유형의 파일이 있습니다.
| 파일 | 설명 |
|---|---|
| 기본 | 기본 데이터 파일은 데이터베이스에 대한 시작 정보를 포함하고 데이터베이스의 다른 파일을 가리킵니다. 사용자 데이터 및 개체는 이 파일 또는 보조 데이터 파일에 저장할 수 있습니다. 모든 데이터베이스에는 하나의 기본 데이터 파일이 있습니다. 기본 데이터 파일에 권장되는 파일 이름 확장명은 .mdf. |
| 부차적인 | 보조 데이터 파일은 선택 사항이며 사용자 정의이며 사용자 데이터를 저장합니다. 보조 파일은 각 파일을 다른 디스크 드라이브에 배치하여 여러 디스크에 데이터를 분산하는 데 사용할 수 있습니다. 또한 데이터베이스가 단일 Windows 파일의 최대 크기를 초과하는 경우 데이터베이스가 계속 증가할 수 있도록 보조 데이터 파일을 사용할 수 있습니다. 보조 데이터 파일에 권장되는 파일 이름 확장명은 .ndf입니다. |
| 트랜잭션 로그 | 트랜잭션 로그 파일에는 데이터베이스를 복구하는 데 사용되는 로그 정보가 저장됩니다. 각 데이터베이스에 대해 하나 이상의 로그 파일이 있어야 합니다. 트랜잭션 로그에 권장되는 파일 이름 확장명은 .ldf입니다. |
예를 들어 모든 데이터와 개체를 포함하는 하나의 기본 파일과 트랜잭션 로그 정보를 포함하는 로그 파일을 포함하는 Sales 라는 간단한 데이터베이스를 만들 수 있습니다. 또는 기본 파일 1개와 보조 파일 5 개를 포함하는 Orders 라는 더 복잡한 데이터베이스를 만들 수 있습니다. 데이터베이스 내의 데이터와 개체는 6개 파일 모두에 분산되고 4개의 로그 파일에는 트랜잭션 로그 정보가 포함됩니다.
기본적으로 데이터 및 트랜잭션 로그는 동일한 드라이브 및 경로에 배치됩니다. 단일 디스크 시스템을 처리하기 위해 수행됩니다. 그러나 프로덕션 환경에는 적합하지 않을 수 있습니다. 데이터 및 로그 파일을 별도의 디스크에 배치하는 것이 좋습니다.
파일 그룹
모든 데이터베이스에는 기본 파일 그룹이 있습니다. 이 파일 그룹에는 기본 데이터 파일과 다른 파일 그룹에 배치되지 않은 보조 파일이 포함됩니다. 관리, 데이터 할당 및 배치를 위해 데이터 파일을 그룹화하기 위해 사용자 정의 파일 그룹을 만들 수 있습니다.
예를 들어 세 개의 파일인 Data1.ndf, Data2.ndf 및 Data3.ndf를 각각 세 개의 디스크 드라이브에 만들고 파일 그룹 fgroup1에 할당할 수 있습니다. 그런 다음 파일 그룹 fgroup1에서 테이블을 특별히 만들 수 있습니다. 테이블의 데이터에 대한 쿼리는 세 개의 디스크에 분산됩니다. 이렇게 하면 성능이 향상됩니다. RAID(독립 디스크의 중복 배열) 스트라이프 집합에서 만든 단일 파일을 사용하여 동일한 성능 향상을 수행할 수 있습니다. 그러나 파일 및 파일 그룹을 사용하면 새 디스크에 새 파일을 쉽게 추가할 수 있습니다.
모든 데이터 파일은 다음 표에 나열된 파일 그룹에 저장됩니다.
| 파일그룹 | 설명 |
|---|---|
| 기본 | 기본 파일을 포함하는 파일 그룹입니다. 모든 시스템 테이블은 기본 파일 그룹에 할당됩니다. |
| 사용자 정의 | 사용자가 데이터베이스를 처음 만들거나 나중에 수정할 때 사용자가 특별히 만든 모든 파일 그룹입니다. |
기본 파일 그룹
개체가 속한 파일 그룹을 지정하지 않고 데이터베이스에 만들어지면 기본 파일 그룹에 할당됩니다. 언제든지 정확히 하나의 파일 그룹이 기본 파일 그룹으로 지정됩니다. 기본 파일 그룹의 파일은 다른 파일 그룹에 할당되지 않은 새 개체를 저장할 수 있을 만큼 커야 합니다.
ALTER DATABASE 문을 사용하여 변경하지 않는 한 PRIMARY 파일 그룹은 기본 파일 그룹입니다. 시스템 개체 및 테이블에 대한 할당은 새 기본 파일 그룹이 아닌 PRIMARY 파일 그룹 내에 유지됩니다.
관련 내용
CREATE DATABASE(SQL Server Transact-SQL)