다음을 통해 공유


시스템 버전 관리 메모리 최적화 임시 테이블 만들기

적용 대상: 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
   )
;

참조