다음을 통해 공유


디스크 기반 Table Storage와 메모리 최적화 테이블 스토리지 비교

적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance

범주 디스크 기반 테이블 내구성 있는 메모리 최적화 테이블
DDL 메타데이터 정보는 데이터베이스의 기본 파일 그룹에 있는 시스템 테이블에 저장되고 카탈로그 보기를 통해 액세스할 수 있습니다. 메타데이터 정보는 데이터베이스의 기본 파일 그룹에 있는 시스템 테이블에 저장되고 카탈로그 보기를 통해 액세스할 수 있습니다.
구조체 행은 8K 페이지에 저장됩니다. 페이지는 동일한 테이블의 행만 저장합니다. 행은 개별 행으로 저장됩니다. 페이지 구조는 없습니다. 데이터 파일의 연속하는 두 행은 서로 다른 메모리 최적화 테이블에 속할 수 있습니다.
인덱스 인덱스는 데이터 행과 유사한 페이지 구조에 저장됩니다. 인덱스 정의만 유지됩니다(인덱스 행은 유지되지 않음). 인덱스는 메모리 내에서 유지 관리되며 메모리 최적화 테이블이 데이터베이스 다시 시작의 일부로 메모리에 로드될 때 다시 생성됩니다. 인덱스 행은 유지되지 않으므로 인덱스 변경에 대한 로깅은 수행되지 않습니다.
DML 작업 첫 번째 단계는 페이지를 찾은 다음 버퍼 풀로 로드하는 것입니다.

삽입
SQL Server가 클러스터형 인덱스의 행 순서를 나타내는 행을 페이지에 삽입합니다.

삭제
SQL Server가 페이지에서 삭제할 행을 찾아 삭제됨으로 표시합니다.

엽데이트
SQL Server가 페이지에서 행을 찾습니다. 키가 아닌 열에 대한 업데이트가 현재 위치에서 수행됩니다. 키 열 업데이트는 삭제 및 삽입 작업에 의해 수행됩니다.

DML 작업이 완료된 후 영향을 받는 페이지는 로깅 작업을 최소화하기 위해 버퍼 풀 정책, 검사점 또는 트랜잭션 커밋의 일부로 디스크에 플러시됩니다. 페이지에서 수행되는 읽기/쓰기 작업은 모두 불필요한 I/O를 발생시킵니다.
메모리 최적화 테이블의 경우 데이터가 메모리에 있으므로 DML 작업은 메모리에서 직접 수행됩니다. 메모리 최적화 테이블에 대한 로그 레코드를 읽고 데이터 및 델타 파일에 유지하는 백그라운드 스레드가 있습니다. 업데이트는 새 행 버전을 생성합니다. 그러나 업데이트는 삭제 후 삽입으로 기록됩니다.
데이터 조각화 데이터 조작은 데이터를 조각화하여 부분적으로 채워진 페이지를 만들고 논리적으로 연속된 페이지를 디스크에서 연속하지 않도록 만듭니다. 이로 인해 데이터 액세스 성능이 저하되고 데이터 조각 모음을 수행해야 합니다. 메모리 최적화 데이터는 페이지에 저장되지 않으므로 데이터 조각화가 발생하지 않습니다. 그러나 행이 업데이트되고 삭제되면 데이터 및 델타 파일을 압축해야 합니다. 이 작업은 병합 정책에 따라 백그라운드 MERGE 스레드에서 수행됩니다.

참고 항목

메모리 최적화 개체에 대한 스토리지 생성 및 관리