Aracılığıyla paylaş


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.

Not

Bellek için optimize edilmiş zaman uyumlu tablolar yalnızca SQL Server ve Azure SQL Yönetilen Örneği'nde 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 tablo oluşturmak, adlandırmayı denetlemek ve varsayılan yapılandırmayla geçmiş tablosu oluşturmak için sisteme güvenmeye devam etmek istediğinizde kullanışlı bir seçenektir. Aşağıdaki örnekte, yeni bir disk tabanlı geçmiş tablosuna bağlanan, sistem tarafından sürümlenmiş ve bellek için iyileştirilmiş yeni bir zamansal tablo bulunmaktadı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 (
    MEMORY_OPTIMIZED = ON,
    DURABILITY = SCHEMA_AND_DATA,
    SYSTEM_VERSIONING = ON (HISTORY_TABLE = History.DepartmentHistory)
);

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

Mevcut bir tablo kullanarak sistem sürümü oluşturma eklemek istediğinizde, var olan bir geçmiş tablosuna bağlı bir zamansal 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.

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