Vytvořte paměťově optimalizovanou tabulku s časovou verzí systému.

Platí pro: SQL Server 2016 (13.x) a novější verze Azure SQL Managed Instance

Podobně jako při vytváření tabulky historie založené na disku můžete vytvořit dočasnou tabulku optimalizovanou pro paměť několika způsoby.

Chcete-li vytvořit tabulky optimalizované pro paměť, musíte nejprve vytvořit skupiny souborů optimalizované pro paměť.

Note

Dočasné tabulky optimalizované pro paměť jsou k dispozici pouze v SQL Serveru a azure SQL Managed Instance. Tabulky optimalizované pro paměť a dočasné tabulky jsou nezávisle dostupné ve službě Azure SQL Database.

Vytvoření dočasné tabulky optimalizované pro paměť s výchozí tabulkou historie

Vytvoření časové tabulky s výchozí tabulkou historie je pohodlná možnost, když chcete ovládat pojmenování a zároveň spoléhat na systém, že tabulku historie vytvoří s výchozím nastavením. V následujícím příkladu je nová systémově optimalizovaná paměťově optimalizovaná časová tabulka propojena s novou tabulkou historie založené na disku.

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

Vytvoření dočasné tabulky optimalizované pro paměť s existující tabulkou historie

Časovou tabulku můžete vytvořit propojenou s existující tabulkou historie, když chcete přidat systémové verze pomocí existující tabulky. Tento scénář je užitečný, když chcete migrovat vlastní dočasné řešení na integrovanou podporu. V následujícím příkladu se vytvoří nová dočasná tabulka propojená s existující tabulkou historie.

Nejprve vytvořte existující tabulku historie:

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

Poté převeďte časovou tabulku, která odkazuje na tabulku historie.

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