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

이 항목은 다음에 적용됩니다. 예SQL Server(2016부터)예Azure SQL Database아니요Azure SQL Data Warehouse아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

메모리 내 OLTPIn-Memory OLTP 엔진은 SQL ServerSQL Server에 통합되어 있으므로 메모리 액세스에 최적화된 테이블과 기존의 디스크 기반 테이블을 모두 같은 데이터베이스에 포함할 수 있습니다.The 메모리 내 OLTPIn-Memory OLTP engine is integrated into SQL ServerSQL Server, which lets you have both memory-optimized tables and (traditional) disk-based tables in the same database. 그러나 메모리 액세스에 최적화된 테이블의 저장소 구조는 디스크 기반 테이블과는 다릅니다.However, the storage structure for memory-optimized tables is different from disk-based tables.

디스크 기반 테이블용 저장소의 주요 특성은 다음과 같습니다.Storage for disk-based table has following key attributes:

  • 파일이 하나 이상 포함된 파일 그룹에 매핑됩니다.Mapped to a filegroup and the filegroup contains one or more files.

  • 각 파일은 8페이지 익스텐트로 구분되며 각 페이지의 크기는 8,000바이트입니다.Each file is divided into extents of 8 pages and each page is of size 8K bytes.

  • 여러 테이블에서 익스텐트를 공유할 수는 있지만 할당된 페이지와 테이블 또는 인덱스 간에는 일대일 매핑이 적용됩니다.An extent can be shared across multiple tables, but a there is 1-to-1 mapping between an allocated page and the table or index. 즉, 둘 이상의 테이블이나 인덱스에서 가져온 행을 한 페이지에 포함할 수는 없습니다.In other words, a page can’t have rows from two or more tables or index.

  • 데이터는 필요에 따라 메모리(버퍼 풀)로 이동되며 수정되거나 새로 생성된 페이지는 디스크에 비동기로 기록되므로 대개 임의의 IO가 생성됩니다.The data is moved into memory (the buffer pool) as needed and the modified or newly created pages are asynchronously written to the disk generating mostly random IO.

    메모리 액세스에 최적화된 테이블용 저장소의 주요 특성은 다음과 같습니다.Storage for memory-optimized tables has following key attributes:

  • 메모리 액세스에 최적화된 모든 테이블은 메모리 액세스에 최적화된 데이터-파일 그룹에 매핑됩니다.All memory-optimized tables are mapped to a memory-optimized data-filegroup. 이 파일 그룹은 파일 스트림과 비슷한 구문과 의미 체계를 사용합니다.This filegroup uses syntax and semantics similar to Filestream.

  • 페이지는 없으며 데이터는 행으로 유지됩니다.There are no pages and the data is persisted as a row.

  • 메모리 액세스에 최적화된 테이블의 모든 변경 내용은 활성 파일에 추가되는 방식으로 저장됩니다.All changes to memory-optimized tables are stored by appending to active files. 파일 읽기와 파일에 쓰기는 모두 순차적으로 수행됩니다.Both reading and writing to files is sequential.

  • 업데이트는 삭제 후 삽입으로 구현됩니다.An update is implemented as a delete followed by an insert. 삭제된 행은 저장소에서 즉시 제거되지 않으며,The deleted rows are not immediately removed from the storage. 삭제된 행은 메모리 액세스에 최적화된 테이블에 대한 내구성에서 설명한 대로 정책을 기반으로 하여 MERGE라는 백그라운드 프로세스를 통해 제거됩니다.The deleted rows are removed by a background process, called MERGE, based on a policy as described in Durability for Memory-Optimized Tables.

  • 디스크 기반 테이블과 달리 메모리 액세스에 최적화된 테이블용 저장소는 압축되지 않습니다.Unlike disk-based tables, storage for memory-optimized tables is not compressed. 압축된(ROW 또는 PAGE) 디스크 기반 테이블을 메모리 액세스에 최적화된 테이블로 마이그레이션할 때는 크기 변경을 고려해야 합니다.When migrating a compressed (ROW or PAGE) disk-based table to memory-optimized table, you will need to account for the change in size.

  • 메모리 액세스에 최적화된 테이블은 지속형일 수도 있고 그렇지 않을 수도 있습니다.A memory-optimized table can be durable or can be non-durable. 지속형 메모리 액세스에 최적화된 테이블용 저장소만 구성하면 됩니다.You only need to configure storage for durable memory-optimized tables.

    이 섹션에서는 검사점 파일 쌍 외에도 메모리 액세스에 최적화된 테이블의 데이터가 저장되는 방법의 다른 측면에 대해 설명합니다.This section describes checkpoint file pairs and other aspects of how data in memory-optimized tables is stored.

    이 섹션의 항목:Topics in this section:

  • 메모리 액세스에 최적화된 테이블 저장소 구성Configuring Storage for Memory-Optimized Tables

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

  • 메모리 액세스에 최적화된 테이블에 대한 내구성Durability for Memory-Optimized Tables

  • 메모리 액세스에 최적화된 테이블에 대한 검사점 작업Checkpoint Operation for Memory-Optimized Tables

  • 메모리 액세스에 최적화된 개체에 대한 내구성 정의Defining Durability for Memory-Optimized Objects

  • 디스크 기반 테이블 저장소와 메모리 액세스에 최적화된 테이블 저장소 비교Comparing Disk-Based Table Storage to Memory-Optimized Table Storage

참고 항목See Also

메모리 내 OLTP(메모리 내 최적화)In-Memory OLTP (In-Memory Optimization)