it-swarm-ko.tech

SQL Server에서 언제 PRIMARY 데이터 파일 그룹을 보조 데이터 파일로 분할해야합니까?

현재 데이터베이스에는 약 8GB의 데이터 (테이블 행, 인덱스, 전체 텍스트 카탈로그)가 포함 된 파일 그룹 PRIMARY가 하나만 있습니다.

이것을 보조 데이터 파일로 분할하기에 좋은시기는 언제입니까? 알아야 할 몇 가지 기준은 무엇입니까?

11
Jarrod Dixon

이 질문에는 새 FILEGROUP을 추가하는시기와 파일 그룹에 새 FILE을 추가하는시기의 두 부분이 있습니다. 먼저 이론에 대해 이야기합시다.

성능이 주된 이유에 대해 Mark의 말이 맞습니다.

두 번째 이유는 재해 복구입니다. SQL Server 2005 이상에서는 파일 그룹 복원을 수행 할 수 있습니다. 재해가 발생하면 먼저 기본 파일 그룹 만 복원하고 쿼리를 위해 데이터베이스를 부분적으로 온라인 상태로 만들 수 있습니다. 사용자는 다른 파일 그룹을 복원하는 동안 쿼리를 실행할 수 있습니다. 이는 당장 필요하지 않을 수있는 많은 양의 기록 데이터가있는 데이터베이스 또는 액세스를위한 기록 데이터없이 현재 테이블에 데이터를로드해야하는 데이터웨어 하우스에 유용합니다.

또 다른 이유는 데이터 그룹의 읽기/쓰기 프로필입니다. 지속적으로 기록되는 데이터가 있고 읽기 활동이 많은 다른 데이터가있는 경우 이러한 요구 사항을 수용하기 위해 다양한 유형의 스토리지를 구축 할 수 있습니다. 무거운 쓰기 항목은 raid 10에 배치하고 읽기 편향된 항목은 저렴한 raid 5에 남겨 둘 수 있습니다.

이제 파일과 파일 그룹을 비교해 보겠습니다. SQL Server에 개체를 배치 할 때 파일 그룹 수준에 배치해야합니다. 파일 그룹에 테이블이나 인덱스를 배치 할 수 있지만 특정 파일을 선택할 수는 없습니다. 지금까지 논의한 모든 내용은 언제 파일 그룹을 추가해야하는지에 대한 것입니다.하지만 언제 파일을 추가합니까?

스토리지를 설계 중이고 80 개의 하드 드라이브가있는 경우이를 분리 할 수있는 몇 가지 방법이 있습니다.

  • 80 개 드라이브 풀 1 개
  • 40 개 드라이브 풀 2 개
  • 20 개 드라이브의 4 개 풀 등 ...

스토리지 서브 시스템마다 성능 프로파일이 다릅니다. 저는 12-16 드라이브 어레이에서 가장 잘 수행되는 일부 SAN과 함께 작업했으며 그보다 큰 것은 성능 향상이 없었습니다. 또 다른 예는 다중 경로를 사용하는 SAN입니다. 서버를 스토리지에 연결하는 HBA가 여러 개 있고 다중 경로 소프트웨어가 실제 활성/활성이 아닌 경우로드를 분산하기 위해 경로당 하나의 어레이가 필요할 수 있습니다. 4 개의 경로, 4 개의 드라이브 풀은 이러한 유형의 드라이브에서 더 나은 성능을 얻을 수 있습니다.

이 경우 Windows에서 4 개의 서로 다른 어레이, 4 개의 서로 다른 드라이브 (마운트 지점을 사용하지 않고 다른 폴더를 사용하지 않는 한)로 끝나고 SQL Server에 4 개의 개별 파일이 필요합니다. 이러한 개별 파일은 동일한 파일 그룹에있을 수 있습니다.

20
Brent Ozar

주된 이유는 성능입니다. 기본 파일 그룹 디스크 드라이브에서 IOPS 용량이 부족한 경우 스토리지 구성에 따라 여러 디스크/LUN에서 IOPS를 분할하려면 두 번째 파일 그룹으로 확장해야합니다.

편집 : Brad Wilson은 SSD에 대해 좋은 의견을 남겼습니다. 복합 SSD/SATA/FC 스토리지 시스템을 사용하는 경우 서로 다른 유형의 스토리지에 서로 다른 파일 그룹을 가질 수 있습니다. 그런 다음 극한의 IOPS 요구 사항 테이블을 SSD 파일 그룹에 넣을 수 있으며, 히스토리/통계 테이블은 저렴한 SATA 파일 그룹에 저장할 수 있습니다.

6
Mark S. Rasmussen

또한이 질문에 복구 가능성/데이터 가용성 측면도 있음을 지적합니다. 여러 파일 그룹을 사용하고 기본 파일 그룹에 사용자 정의 개체를 배치하지 않으면 온라인 복원을보다 유연하게 사용할 수 있습니다. 이렇게하면 파일 그룹 수준에서 증분 복원이 가능합니다.

온라인 복원은 2005 년 이후 SQL Server의 Enterprise 및 Developer 버전에서 사용할 수 있습니다.

떠오르는 또 다른 생각은 트랜잭션 데이터에서 읽기 전용 정적 참조 데이터를 분리하는 것입니다. 더 큰 데이터베이스의 경우 백업을 수행하는 데 필요한 시간 및/또는 공간을 줄일 수 있습니다.

1
Jason Horner