적용 대상: SQL Server 2016(13.x) 이상 버전
Azure SQL Managed Instance
디스크 기반 기록 테이블을 만드는 것과 마찬가지로 몇 가지 방법으로 메모리 최적화 temporal 테이블을 만들 수 있습니다.
메모리 최적화 테이블을 만들려면 먼저 메모리 최적화 파일 그룹을 만들어야 합니다.
메모
메모리 최적화 임시 테이블은 SQL Server 및 Azure SQL Managed Instance에서만 사용할 수 있습니다. 메모리 최적화 테이블 및 임시 테이블은 Azure SQL Database에서 독립적으로 사용할 수 있습니다.
기본 기록 테이블이 포함된 메모리 최적화 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 테이블이 만들어집니다.
--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
);