파일 및 파일 그룹 개요
업데이트: 2007년 11월
추가 파일 그룹을 정의하여 사용하면 데이터베이스의 성능을 개선하는 것은 물론 데이터베이스 개체를 백업 및 복원하는 방식을 효율적으로 관리할 수 있습니다. 예를 들어 여러 파일 그룹을 서로 다른 실제 디스크에 정의하여 액세스 시간을 줄일 수 있습니다. 스키마의 모든 데이터베이스 개체를 특정 파일 그룹과 연결하면 해당 개체를 한 번에 백업 및 복원할 수 있습니다. 파일 그룹에 대한 자세한 내용은 물리적 데이터베이스 파일 및 파일 그룹을 참조하십시오.
동작
데이터베이스 프로젝트에서 파일 및 파일 그룹을 정의하기 전에 원하는 동작과 원하지 않는 문제를 구별할 수 있도록 다음 동작을 고려해야 합니다.
서비스 릴리스 1로 업그레이드
서비스 릴리스 1(SR1)을 설치하기 전에 Visual Studio Team System Database Edition에서 파일 그룹을 정의한 경우 해당 파일 그룹을 스키마 개체로 정의합니다. 또한 배포 후 스크립트의 일부인 storage.sql 파일에도 관련 파일을 정의합니다. SR1을 설치한 후 파일 그룹 및 파일을 데이터베이스 프로젝트의 속성으로 정의합니다. SR1 이전에 생성된 파일이나 파일 그룹이 포함된 데이터베이스 프로젝트를 SR1을 사용하여 열면 해당 파일 및 파일 그룹 정의가 스키마 개체에서 프로젝트 속성으로 변환됩니다. 또한 storage.sql 파일의 해당 섹션은 주석으로 변환됩니다. 그러나 이러한 변환이 storage.sql 파일의 다른 문이나 다른 스크립트에 있는 파일 그룹 및 파일 정의에 영향을 주지는 않습니다.
스키마 가져오기
기존 데이터베이스에서 스키마를 가져오는 경우 데이터베이스의 파일 그룹 및 파일 정의도 가져오게 됩니다. 스키마를 가져온 데이터베이스에 추가 파일 그룹이 정의되어 있는 경우 다음과 같은 경고가 표시됩니다.
경고: ADD FILEGROUP 문이 생성되었습니다. 각 파일 그룹에 대한 파일도 만들어졌습니다. 서버의 다른 파일과 일관성을 유지하기 위해 파일 이름과 경로를 확인해야 합니다.
스키마 비교
스키마를 비교하면 이름이 동일한 개체가 이름이 다른 파일 그룹에서 만들어졌는지 여부를 확인할 수 있습니다. 또한 대상이 아닌 소스에서만 파일 그룹이 추가 또는 제거되었는지도 확인할 수 있습니다. 그러나 파일 그룹은 항상 동일하게 표시되기 때문에 파일 그룹에 같은 파일이 포함되어 있는지 여부는 확인할 수 없습니다. 스키마 비교 방법에 대한 자세한 내용은 방법: 두 데이터베이스의 스키마 비교를 참조하십시오.
데이터베이스 프로젝트 빌드 및 배포
파일 및 파일 그룹을 특정 빌드 구성에만 사용하도록 만들 수는 없습니다. 그러나 특정 구성에만 사용할 수 있는 MSBuild 변수로 파일을 정의할 수는 있습니다. 예를 들어 이 접근 방식을 사용하면 격리된 개발 환경에서 스테이징 서버와 다른 경로 및 파일 이름을 사용할 수 있습니다.
파일 그룹, 파일 및 로그 파일 삭제
데이터베이스 프로젝트에서 파일 그룹을 삭제하는 경우 이러한 변경 내용을 새 데이터베이스에 배포할 수는 있지만 기존 데이터베이스에 배포하면 해당 변경 내용이 무시됩니다. 데이터베이스 프로젝트에서 파일 그룹을 삭제하면 해당 파일 그룹과 연관된 파일도 모두 삭제됩니다. 또한 데이터베이스 프로젝트에서 삭제된 파일 그룹에 있던 개체는 오류 상태로 표시됩니다. 이 오류를 해결하려면 파일 그룹을 다시 만들거나, 해당 개체 정의를 수정하여 이를 다른 파일 그룹과 연결해야 합니다. 이러한 경우 오류가 해결될 때까지는 데이터베이스 프로젝트를 배포할 수 없습니다.
기본 파일 그룹은 삭제할 수 없으며, 항상 지정되어 있어야 합니다. 파일 그룹에서 유일한 파일을 제거하면 오류 목록 창에 파일 그룹 정의가 불완전함을 나타내는 경고가 표시됩니다. 또한 데이터베이스 프로젝트에서 유일한 로그 파일은 제거할 수 없습니다. 데이터베이스 프로젝트에는 항상 로그 파일이 하나 이상 정의되어 있어야 합니다.
제한
다음은 파일 그룹에 변경 내용을 배포하거나, 파일 그룹의 이름을 바꾸거나, 읽기 전용 파일 그룹의 데이터베이스 개체를 정의할 때 적용될 수 있는 제한 사항입니다.
변경 내용 배포
데이터베이스 프로젝트에 파일 그룹을 추가하는 경우 해당 변경 내용을 새 데이터베이스나 기존 데이터베이스에 배포할 수 있습니다. 또한 파일 그룹을 삭제하거나 해당 파일 또는 속성을 수정하는 경우 이러한 변경 내용을 새 데이터베이스에 배포할 수 있습니다. 그러나 프로젝트를 기존 데이터베이스에 배포하는 경우에는 파일 그룹의 삭제 및 수정 내용이 무시됩니다. 데이터베이스 프로젝트의 파일 그룹 이름이 대상에 있는 파일 그룹의 이름과 일치하는 경우 두 파일 그룹은 동일한 것으로 간주됩니다.
파일 그룹의 이름을 바꾼 후 기존 데이터베이스에 배포하면 새 이름이 지정된 파일 그룹이 만들어지며 기존 파일 그룹은 변경되지 않습니다.
개체 정의에서 파일 그룹 이름 바꾸기
리팩터링을 사용하여 데이터베이스 개체 정의에서 파일 그룹의 이름을 업데이트할 수는 없습니다. 이러한 이름은 수동으로 업데이트하거나 검색 기능을 사용하여 업데이트해야 합니다. 자세한 내용은 찾기 및 바꾸기 창을 참조하십시오.
읽기 전용 파일 그룹의 개체 정의
파일 그룹에 대해 읽기 전용 확인란을 선택하더라도 데이터베이스 프로젝트에서 해당 파일 그룹의 개체를 계속 정의할 수 있습니다. 이러한 변경 내용을 기존 데이터베이스에 배포하려는 경우 오류가 표시되며 작업이 실패하게 됩니다. 하지만 이러한 변경 내용을 새 데이터베이스에 배포하면 읽기 전용 확인란의 선택이 취소된 것처럼 개체가 생성됩니다. 개체가 생성되면 파일 그룹이 데이터베이스에서 읽기 전용으로 설정됩니다.