메모리 액세스에 최적화된 파일 그룹The Memory Optimized Filegroup

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse 메모리 최적화 테이블을 만들려면 먼저 메모리 최적화 파일 그룹을 만들어야 합니다. To create memory-optimized tables, you must first create a memory-optimized filegroup. 메모리 최적화 파일 그룹에는 컨테이너가 하나 이상 포함되어 있고,The memory-optimized filegroup holds one or more containers. 각 컨테이너에는 데이터 파일이나 델타 파일, 또는 둘 다 포함되어 있습니다.Each container contains data files or delta files or both.

SCHEMA_ONLY 테이블의 데이터 행이 유지되지 않고 메모리 최적화 테이블의 메타데이터와 고유하게 컴파일된 저장 프로시저가 기존 카탈로그에 저장되지만 메모리 내 OLTPIn-Memory OLTP 엔진에는 메모리 최적화 테이블이 있는 데이터베이스에 대한 균일한 환경을 제공하기 위해 SCHEMA_ONLY 메모리 최적화 테이블에 대해 메모리 최적화 파일 그룹이 여전히 필요합니다.Even though data rows from SCHEMA_ONLY tables are not persisted and the metadata for memory-optimized tables and natively compiled stored procedures is stored in the traditional catalogs, the 메모리 내 OLTPIn-Memory OLTP engine still requires a memory-optimized filegroup for SCHEMA_ONLY memory-optimized tables to provide a uniform experience for databases with memory-optimized tables.

메모리 최적화 파일 그룹은 다음과 같은 차이를 두고 파일 스트림 파일 그룹을 기반으로 합니다.The memory-optimized filegroup is based on filestream filegroup, with the following differences:

  • 데이터베이스당 하나의 메모리 최적화 파일 그룹만 만들 수 있습니다.You can only create one memory-optimized filegroup per database. 파일 그룹을 포함된 memory_optimized_data로 명시적으로 표시해야 합니다.You need to explicitly mark the filegroup as containing memory_optimized_data. 데이터베이스를 만들 때 파일 그룹을 만들거나 나중에 추가할 수 있습니다.You can create the filegroup when you create the database or you can add it later:

    ALTER DATABASE imoltp ADD FILEGROUP imoltp_mod CONTAINS MEMORY_OPTIMIZED_DATA  
    
  • MEMORY_OPTIMIZED_DATA 파일 그룹에 하나 이상의 컨테이너를 추가해야 합니다.You need to add one or more containers to the MEMORY_OPTIMIZED_DATA filegroup. 예를 들어For example:

    ALTER DATABASE imoltp ADD FILE (name='imoltp_mod1', filename='c:\data\imoltp_mod1') TO FILEGROUP imoltp_mod  
    
  • 메모리 최적화 파일 그룹을 만들기 위해 파일 스트림을 사용할 필요가 없습니다(FILESTREAM 사용 및 구성).You do not need to enable filestream (Enable and Configure FILESTREAM) to create a memory-optimized filegroup. 파일 스트림에 대한 매핑을 메모리 내 OLTPIn-Memory OLTP 엔진이 수행합니다.The mapping to filestream is done by the 메모리 내 OLTPIn-Memory OLTP engine.

  • 새 컨테이너를 메모리 최적화 파일 그룹에 추가할 수 있습니다.You can add new containers to a memory-optimized filegroup. 메모리 최적화 내구성이 있는 테이블에 필요한 저장소를 확장하고 여러 컨테이너 간에 IO를 분산하기 위해 새 컨테이너가 필요할 수 있습니다.You may need a new container to expand the storage needed for durable memory-optimized table and also to distribute IO across multiple containers.

  • 메모리 최적화 파일 그룹이 포함된 데이터 이동은 Always On 가용성 그룹 구성에 최적화되어 있습니다.Data movement with a memory-optimized filegroup is optimized in an Always On Availability Group configuration. 보조 복제본에 전송되는 파일 스트림 파일과는 달리 메모리 최적화 파일 그룹 내에 있는 검사점 파일(데이터 및 델타)은 보조 복제본에 전송되지 않습니다.Unlike filestream files that are sent to secondary replicas, the checkpoint files (both data and delta) within the memory-optimized filegroup are not sent to secondary replicas. 보조 복제본에서 트랜잭션 로그를 사용하여 데이터 및 델타 파일이 생성됩니다.The data and delta files are constructed using the transaction log on the secondary replica.

    다음은 메모리 최적화 파일 그룹의 제한 사항입니다.The following limitations of memory-optimized filegroup,

  • 메모리 최적화 파일 그룹을 만들었으면 데이터베이스를 삭제하는 방식으로만 제거할 수 있습니다.Once you create a memory-optimized filegroup, you can only remove it by dropping the database. 프로덕션 환경에서 메모리 최적화 파일 그룹을 제거하지 않아도 됩니다.In a production environment, it is unlikely that you will need to remove the memory-optimized filegroup.

  • 비어 있지 않은 컨테이너를 제거하거나 데이터 및 델타 파일 쌍을 메모리 최적화 파일 그룹의 다른 컨테이너로 이동할 수 없습니다.You cannot drop a non-empty container or move data and delta file pairs to another container in the memory-optimized filegroup.

  • 컨테이너에 MAXSIZE를 지정할 수 없습니다.You cannot specify MAXSIZE for the container.

메모리 액세스에 최적화된 파일 그룹 구성Configuring a Memory-Optimized Filegroup

메모리 최적화 파일 그룹에 여러 컨테이너를 만들고 다른 드라이브에 분산하여 메모리에 데이터를 스트리밍하는 더 많은 대역폭을 얻어야 합니다.You should consider creating multiple containers in the memory-optimized filegroup and distribute them on different drives to achieve more bandwidth to stream the data into memory.

저장소를 구성할 때 메모리 최적화 내구성이 있는 테이블 크기의 4배 정도의 여유 디스크 공간을 제공해야 합니다.When configuring storage, you must provide free disk space that is four times the size of durable memory-optimized tables. IO 하위 시스템이 작업에 필요한 IOPS를 지원하는지 확인해야 합니다.You must also ensure that your IO subsystem supports the required IOPS for your workload. 제공된 IOPS에 데이터 및 델타 파일 쌍이 채워지는 경우 저장 및 병합 작업 계정에 대한 IOPS의 3배가 필요합니다.If data and delta file pairs are populated at a given IOPS, you need 3 times that IOPS to account for storing and merge operations. 메모리 최적화 파일 그룹에 하나 이상의 컨테이너를 추가하여 저장소 용량 및 IOPS를 추가할 수 있습니다.You can add storage capacity and IOPS by adding one or more containers to the memory-optimized filegroup.

참고 항목See Also

메모리 액세스에 최적화된 개체의 저장소 만들기 및 관리Creating and Managing Storage for Memory-Optimized Objects