메모리 최적화 개체에 대한 내구성 정의
적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance
메모리 최적화 테이블에는 두 가지의 내구성 옵션이 있습니다.
SCHEMA_AND_DATA(기본값)
이 옵션은 스키마와 데이터 모두의 내구성을 제공합니다. 데이터 내구성 수준은 트랜잭션을 완전 내구성으로 커밋하는지 또는 지연된 내구성으로 커밋하는지에 따라 달라집니다. 완전 내구성 트랜잭션은 디스크 기반 테이블과 유사하게 데이터 및 스키마에 대해 동일한 내구성을 보장합니다. 지연된 내구성은 성능을 향상시키지만 서버 충돌이나 장애 조치(Failover)의 경우 데이터 손실을 발생시킬 수도 있습니다. (지연된 내구성에 대한 자세한 내용은 트랜잭션 내구성 제어를 참조하세요.)
SCHEMA_ONLY
이 옵션은 테이블 스키마의 내구성을 보장합니다. Azure SQL Database에서 SQL Server가 다시 시작되거나 재구성이 발생하면 테이블 스키마는 유지되지만 테이블의 데이터는 손실됩니다. (이는 다시 시작 시 테이블과 해당 데이터가 모두 손실되는 tempdb의 테이블과는 다릅니다.) 비내구성 테이블을 만드는 일반적인 시나리오는 ETL 프로세스에 대한 준비 테이블과 같은 일시적 데이터를 저장하는 것입니다. SCHEMA_ONLY 내구성은 트랜잭션 로깅을 방지하여 I/O 작업을 크게 줄일 수 있지만 여전히 검사점 작업에 참여하여 테이블 스키마만 유지합니다.
기본 SCHEMA_AND_DATA 테이블을 사용하는 경우 SQL Server는 디스크 기반 테이블과 동일한 내구성 보증을 제공합니다.
트랜잭션 내구성
메모리 최적화 테이블을 변경한 완전 내구성 트랜잭션(DDL 또는 DML)을 커밋하면, 내구성 있는 메모리 최적화 테이블의 변경 내용이 영구적으로 유지됩니다.
지연된 내구성 트랜잭션을 메모리 최적화 테이블에 커밋하면, 메모리 내 트랜잭션 로그가 디스크에 저장된 후에만 트랜잭션이 내구성을 가집니다. (지연된 내구성에 대한 자세한 내용은 트랜잭션 내구성 제어를 참조하세요.)
다시 시작 내구성
크래시 또는 계획된 종료 후 SQL Server가 다시 시작되면 메모리 최적화 내구성 테이블이 다시 인스턴스화되어 종료 또는 크래시 전 상태로 복원됩니다.
미디어 오류 내구성
실패하거나 손상된 디스크에 내구성 있는 메모리 최적화 개체의 지속형 복사본이 하나 이상 포함된 경우 SQL Server 백업 및 복원 기능은 새 미디어에 메모리 최적화 테이블을 복원합니다.