다음을 통해 공유


메모리 액세스에 최적화된 파일 그룹

적용 대상: SQL Server

메모리 최적화 테이블을 만들려면 먼저 메모리 최적화 파일 그룹을 만들어야 합니다. 메모리 최적화 파일 그룹에는 하나 이상의 컨테이너가 있습니다. 각 컨테이너에는 데이터 파일이나 델타 파일, 또는 둘 다 포함되어 있습니다.

SCHEMA_ONLY 테이블의 데이터 행이 유지되지 않고 메모리 최적화 테이블 및 네이티브 컴파일된 저장 프로시저에 대한 메타데이터가 기존 카탈로그에 저장되더라도 메모리 최적화 테이블을 사용하는 데이터베이스에 균일한 환경을 제공하기 위해 메모리 내 OLTP 엔진에는 SCHEMA_ONLY 메모리 최적화 테이블의 메모리 최적화 파일 그룹이 여전히 필요합니다.

메모리 최적화 파일 그룹은 다음과 같은 차이를 두고 파일 스트림 파일 그룹을 기반으로 합니다.

  • 데이터베이스당 하나의 메모리 최적화 파일 그룹만 만들 수 있습니다. 파일 그룹을 memory_optimized_data를 포함하는 것으로 명시적으로 표시해야 합니다. 데이터베이스를 만들 때 파일 그룹을 만들거나 나중에 추가할 수 있습니다.

    ALTER DATABASE imoltp ADD FILEGROUP imoltp_mod CONTAINS MEMORY_OPTIMIZED_DATA  
    
  • MEMORY_OPTIMIZED_DATA 파일 그룹에 하나 이상의 컨테이너를 추가해야 합니다. 예시:

    ALTER DATABASE imoltp ADD FILE (name='imoltp_mod1', filename='c:\data\imoltp_mod1') TO FILEGROUP imoltp_mod  
    
  • 파일 스트림(FILESTREAM 사용 및 구성)을 사용하도록 설정하여 메모리 최적화 파일 그룹을 만들 필요가 없습니다. 파일 스트림에 대한 매핑은 메모리 내 OLTP 엔진에 의해 수행됩니다.

  • 메모리 최적화 파일 그룹에 새 컨테이너를 추가할 수 있습니다. 지속형 메모리 최적화 테이블에 필요한 스토리지를 확장하고 여러 컨테이너에 IO를 배포하기 위해 새 컨테이너가 필요할 수 있습니다.

  • 메모리 최적화 파일 그룹을 사용하는 데이터 이동은 Always On 가용성 그룹 구성에서 최적화됩니다. 보조 복제본으로 전송되는 파일 스트림 파일과 달리 메모리 최적화 파일 그룹 내의 검사점 파일(데이터 및 델타 모두)은 보조 복제본으로 전송되지 않습니다. 데이터 및 델타 파일은 보조 복제본의 트랜잭션 로그를 사용하여 생성됩니다.

참고 항목

메모리 최적화 파일 그룹을 사용하면 데이터베이스를 삭제하는 방식으로만 이 파일 그룹을 제거할 수 있습니다. 프로덕션 환경에서는 메모리 최적화 파일 그룹을 제거해야 할 가능성이 낮습니다. 비어 있지 않은 컨테이너를 삭제하거나 데이터 및 델타 파일 쌍을 메모리 최적화 파일 그룹의 다른 컨테이너로 이동할 수 없습니다.

메모리 최적화 파일 그룹 구성

메모리 최적화 파일 그룹에 여러 컨테이너를 만들고 다른 드라이브에 분산하여 메모리에 데이터를 스트리밍하는 더 많은 대역폭을 얻어야 합니다.

여러 컨테이너에서 여러 드라이브 시나리오, 데이터 및 델타 파일이 라운드 로빈 방식으로 컨테이너에 할당됩니다. 첫 번째 데이터 파일은 첫 번째 컨테이너에서 할당되고 델타 파일은 다음 컨테이너에서 할당되며 이 할당 패턴이 반복됩니다. 이 할당 체계는 홀수의 드라이브가 있고 각각 하나의 컨테이너에 매핑된 경우 컨테이너 간에 데이터 및 델타 파일을 균등하게 분산합니다. 그러나 짝수 개수의 드라이브가 있고 각각이 컨테이너에 매핑된 경우 홀수 개 드라이브에 매핑된 데이터 파일과 짝수 개 드라이브에 매핑된 델타 파일 스토리지가 불균형을 이룰 수 있습니다. 복구 시 균형 잡힌 I/O 스트림을 얻으려면 동일한 스핀들/스토리지에 데이터 및 델타 파일 쌍을 배치하는 것이 좋습니다.

스토리지를 구성할 때는 지속형 메모리 최적화 테이블 크기의 4배에 달하는 사용 가능한 디스크 공간을 제공해야 합니다. 또한 IO 하위 시스템이 워크로드에 필요한 IOPS를 지원하는지 확인해야 합니다. 데이터 및 델타 파일 쌍이 지정된 IOPS에 채워지는 경우 저장 및 병합 작업을 고려하려면 3배의 IOPS가 필요합니다. 메모리 최적화 파일 그룹에 하나 이상의 컨테이너를 추가하여 스토리지 용량과 IOPS를 추가할 수 있습니다.

주의

메모리 최적화 파일 그룹에 MAXSIZE 값이 설정되고 검사점 파일이 컨테이너의 최대 크기를 초과하는 경우 데이터베이스는 SUSPECT가 됩니다.
이 경우 데이터베이스를 OFFLINE 및 ONLINE으로 설정하려고 시도하지 않으므로 데이터베이스가 RECOVERY_PENDING 상태로 유지됩니다.

참고 항목

메모리 최적화 개체에 대한 스토리지 생성 및 관리
데이터베이스 파일 및 파일 그룹
ALTER DATABASE 파일 및 파일 그룹 옵션(Transact-SQL)