그러나 최근에 모든 데이터베이스에 여러 mdf 파일이있는 서버의 일부 데이터베이스를 발견했습니다.
잘못된 이름 지정 규칙 때문입니다. 마이크로 소프트는 모든 데이터베이스가 하나의 기본 데이터 파일을 가지고 있지만 "mdf 데이터 파일"을 하나만 가질 수있는 것은 아니며, 데이터베이스는 .mdf
확장자를 가진 많은 데이터 파일을 가질 수 있지만 하나는 기본 데이터 파일이 될 것이라고 말합니다 . 제공하는 더없는 mdf
주 데이터 파일과 확장자 ndf
적절한 경계를 가지고 보조 데이터 파일을하지만이 더 어렵다 빠른 당신은 또한 당신이 목격 무엇 때문에 주 데이터 파일을주고이 .abc 확장이 정상 수 있습니다 규칙. 사실 원하는 확장 기능을 제공 할 수 있습니다.
데이터베이스에 여러 .mdf 파일을 가지고있는 것이 지혜 로운가?
당신이 의미하는 경우 :
데이터베이스에 여러 개의 기본 파일을 보유하는 데 지혜가 있습니까?
대답은 아니오입니다. 데이터베이스에는 기본 데이터 파일이 하나만있을 수 있습니다.
그러나 당신이 의미하는 경우 :
데이터베이스에 여러 데이터 파일 (.mdf, .ndf 또는 다른 이름 을 가짐)을 가지고있는 데 지혜가 있습니까?
여러 데이터 파일을 사용할 수 있고 사용할 수없는 경우도 있습니다. 그것들이 다른 물리적 드라이브 (스핀들에 대해 이야기하고 있음)에 퍼져 있다면 쓰기 집약적 응용 프로그램의 장점이 있습니다. 이들이 모두 동일한 논리 파티션에 있으면 기본 자원은 공통 자원을 사용하므로 이점이 없습니다. 파일 및 파일 그룹을 사용하면 데이터베이스를 여러 디스크, 여러 디스크 컨트롤러 또는 RAID (중복 독립 디스크 배열) 시스템에서 작성할 수 있으므로 데이터베이스 성능이 향상됩니다. 예를 들어, 컴퓨터에 4 개의 디스크가있는 경우 3 개의 데이터 파일과 1 개의 로그 파일로 구성된 데이터베이스를 각 디스크에 1 개의 파일로 만들 수 있습니다. 데이터에 액세스하면 4 개의 읽기 / 쓰기 헤드가 동시에 데이터에 액세스 할 수 있습니다.
당 이 MSDN BOL 기사
파일 그룹은 각 파일 그룹 내의 모든 파일에서 비례 채우기 전략을 사용합니다. 데이터가 파일 그룹에 기록 될 때 SQL Server 데이터베이스 엔진은 모든 데이터가 가득 찰 때까지 첫 번째 파일에 모든 데이터를 기록하는 대신 파일의 여유 공간에 비례하는 양을 파일 그룹 내의 각 파일에 기록합니다. 그런 다음 다음 파일에 씁니다. 예를 들어, 파일 f1에 100MB의 여유 공간이 있고 파일 f2에 200MB의 여유 공간이 있으면 파일 f1에서 하나의 익스텐트가 할당되고 파일 f2에서 두 개의 익스텐트가 할당됩니다. 이러한 방식으로 두 파일이 거의 동시에 가득 차고 간단한 스트라이핑이 이루어집니다.
내가 아는 다른 이점은 단일 데이터 파일이 있고 다른 서버 에서이 데이터베이스를 복원하려는 경우 1TB의 여유 공간이 거의 없을 경우 1TB 데이터베이스를 고려한다는 것입니다. 이제 동일한 데이터베이스가 각각 크기가 250G 인 다른 파일에 분산되면 복원이 쉬워집니다. 이것은 실제로는 시나리오가 아닐 수 있지만 1TB 드라이브 하나보다 4 개의 250G 드라이브가있는 서버를 쉽게 찾을 수 있습니다.
많은 데이터 파일 대신 다른 파일 그룹을 갖는 것이 더 좋지만 다시는 환경이 많지 않다고 말합니다. 여러 파일 그룹으로 구성된 데이터베이스는 단편 복원이라는 프로세스에 의해 단계적으로 복원 될 수 있습니다. 단편 복원은 모든 복구 모델에서 작동하지만 단순 모드보다 전체 및 대량 로그 모델에 더 유연합니다. 데이터베이스의 파일 또는 파일 그룹을 개별적 으로 백업 및 복원 할 수 있습니다 . 이를 통해 나머지 데이터베이스를 복원하지 않고도 손상된 파일 만 복원 할 수 있습니다. 파일 그룹 백업의 파일은 개별적으로 또는 그룹으로 복원 할 수 있습니다