Bellek açısından optimize edilmiş sistem sürümlü zamansal tablo oluşturma

Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümleri Azure SQL Yönetilen Örnek

Disk tabanlı geçmiş tablosu oluşturmaya benzer şekilde, bellek için iyileştirilmiş bir zamansal tablo çeşitli yollarla oluşturabilirsiniz.

Bellek için iyileştirilmiş tablolar oluşturmak için önce bellek için iyileştirilmiş dosya grubunuoluşturmanız gerekir.

Note

Bellek optimize edilmiş zamansal tablolar yalnızca SQL Server ve Azure SQL Yönetilen Örnek'te kullanılabilir. Bellek için iyileştirilmiş tablolar ve zamana bağlı tablolar Azure SQL Veritabanı'nda bağımsız olarak kullanılabilir.

Varsayılan geçmiş tablosuyla bellek için iyileştirilmiş bir zamana bağlı tablo oluşturma

Varsayılan geçmiş tablosuyla zamansal bir tablo oluşturmak, adlandırmayı kontrol etmek ve yine de sistemin varsayılan yapılandırmayla geçmiş tablosunu oluşturmak istediğinizde pratik bir seçenektir. Aşağıdaki örnekte, yeni sistem sürümünde bellek optimize edilmiş zamansal tablo, yeni bir disk tabanlı geçmiş tablosuna bağlanmıştır.

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 (
    SYSTEM_VERSIONING = ON (
        HISTORY_TABLE = dbo.Department_History
    ),
    MEMORY_OPTIMIZED = ON,
    DURABILITY = SCHEMA_AND_DATA
);

Mevcut bir geçmiş tablosuyla bellek için optimize edilmiş bir zamansal tablo oluşturma

Mevcut bir tablo kullanarak sistem sürüm eklemek istediğinizde mevcut bir geçmiş tablosuna bağlı zamansal bir tablo oluşturabilirsiniz. Bu senaryo, özel bir zamansal çözümü yerleşik desteğe geçirmek istediğinizde kullanışlıdır. Aşağıdaki örnekte, var olan bir geçmiş tablosuna bağlı yeni bir zamana bağlı tablo oluşturulur.

Öncelikle, mevcut tarih tablosunu oluşturun:

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
);

Sonra, geçmiş tablosuna bağlanan bir zaman tablosunu dönüştürün.

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
);