시스템 버전 관리 메모리 최적화 임시 테이블 만들기
적용 대상: SQL Server 2016(13.x) 이상
Azure SQL Database
Azure SQL Managed Instance
디스크 기반 기록 테이블을 만드는 것과 마찬가지로 여러 가지 방법으로 메모리 최적화 임시 테이블을 만들 수 있습니다.
참고
메모리 최적화 테이블을 만들려면 먼저 메모리 최적화 파일 그룹을 만들어야 합니다.
기본 기록 테이블을 사용하여 임시 테이블을 만드는 것은 이름 지정을 제어하고 여전히 시스템을 사용하여 기록 테이블을 기본 구성으로 만들려는 경우 편리한 옵션입니다. 아래 예제에서는 시스템 버전 관리 메모리 최적화 임시 테이블이 새 디스크 기반 기록 테이블에 연결됩니다.
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 )
);
기존 기록 테이블에 연결되는 임시 테이블을 만드는 것은 사용자 지정 임시 솔루션을 기본 제공 지원으로 마이그레이션하려는 경우와 같이 기존 테이블을 사용하여 시스템 버전 관리를 추가하려는 경우에 유용합니다. 아래 예제에서는 기존 기록 테이블에 연결되는 새 임시 테이블이 만들어집니다.
--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
)
;
참조
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기