메모리 최적화 시스템 버전 관리 temporal 테이블 만들기
적용 대상: SQL Server 2016(13.x) 이상 Azure SQL 데이터베이스 Azure SQL Managed Instance
디스크 기반 기록 테이블을 만드는 것과 마찬가지로 몇 가지 방법으로 메모리 최적화 temporal 테이블을 만들 수 있습니다.
메모리 최적화 테이블을 만들려면 먼저 메모리 최적화 파일 그룹을 만들어야 합니다.
기본 기록 테이블이 포함된 메모리 최적화 temporal 테이블 만들기
기본 기록 테이블을 사용하여 temporal 테이블을 만드는 것은 이름 지정을 제어하고 여전히 시스템을 사용하여 기록 테이블을 기본 구성으로 만들려는 경우 편리한 옵션입니다. 아래 예제에서는 새 시스템 버전 관리 메모리 최적화 temporal 테이블이 새 디스크 기반 기록 테이블에 연결됩니다.
CREATE SCHEMA History;
GO
CREATE TABLE dbo.Department (
DepartmentNumber CHAR(10) NOT NULL PRIMARY KEY NONCLUSTERED,
DepartmentName VARCHAR(50) NOT NULL,
ManagerID INT NULL,
ParentDepartmentNumber CHAR(10) NULL,
ValidFrom DATETIME2 GENERATED ALWAYS AS ROW START HIDDEN NOT NULL,
ValidTo DATETIME2 GENERATED ALWAYS AS ROW END HIDDEN NOT NULL,
PERIOD FOR SYSTEM_TIME(ValidFrom, ValidTo)
)
WITH (
MEMORY_OPTIMIZED = ON,
DURABILITY = SCHEMA_AND_DATA,
SYSTEM_VERSIONING = ON (HISTORY_TABLE = History.DepartmentHistory)
);
기존 기록 테이블이 포함된 메모리 최적화 temporal 테이블 만들기
기존 테이블을 사용하여 시스템 버전 관리를 추가하려는 경우 기존 기록 테이블에 연결된 temporal 테이블을 만들 수 있습니다. 이 시나리오는 사용자 지정 temporal 솔루션을 기본 제공 지원으로 마이그레이션하려는 경우에 유용합니다. 다음 예제에서는 기존 기록 테이블에 연결되는 새 temporal 테이블이 만들어집니다.
--Existing table
CREATE TABLE Department_History (
DepartmentNumber CHAR(10) NOT NULL,
DepartmentName VARCHAR(50) NOT NULL,
ManagerID INT NULL,
ParentDepartmentNumber CHAR(10) NULL,
ValidFrom DATETIME2 NOT NULL,
ValidTo DATETIME2 NOT NULL
);
--Temporal table
CREATE TABLE Department (
DepartmentNumber CHAR(10) NOT NULL PRIMARY KEY NONCLUSTERED,
DepartmentName VARCHAR(50) NOT NULL,
ManagerID INT NULL,
ParentDepartmentNumber CHAR(10) NULL,
ValidFrom DATETIME2 GENERATED ALWAYS AS ROW START HIDDEN NOT NULL,
ValidTo DATETIME2 GENERATED ALWAYS AS ROW END HIDDEN NOT NULL,
PERIOD FOR SYSTEM_TIME(ValidFrom, ValidTo)
)
WITH (
SYSTEM_VERSIONING = ON (
HISTORY_TABLE = dbo.Department_History,
DATA_CONSISTENCY_CHECK = ON
),
MEMORY_OPTIMIZED = ON,
DURABILITY = SCHEMA_AND_DATA
);