Creación de una tabla temporal con control de versiones del sistema optimizada para memoria
Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL Database Azure SQL Managed Instance
Igual que crea una tabla de historial basada en disco, puede crear una tabla temporal optimizada para memoria de varias maneras.
Para crear tablas optimizadas para memoria, primero debe crear el grupo de archivos optimizados para memoria.
Creación de una tabla temporal optimizada para memoria con una tabla de historial predeterminada
Esta opción es práctica en casos en los que quiera controlar la nomenclatura y, aun así, delegar al sistema la generación de la tabla de historial con la configuración predeterminada. En el ejemplo siguiente, una nueva tabla temporal con control de versiones del sistema optimizada para memoria se vincula a una nueva tabla del historial basada en disco.
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)
);
Creación de una tabla temporal optimizada para memoria con una tabla de historial existente
Puede crear una tabla temporal vinculada a una tabla de historial existente cuando quiera agregar el control de versiones del sistema mediante una tabla existente. Este escenario es útil cuando se quiere migrar una solución temporal personalizada a compatibilidad integrada. En el ejemplo siguiente, se crea una tabla temporal vinculada a una tabla de historial existente.
--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
);
Contenido relacionado
- Tablas temporales con control de versiones del sistema con tablas optimizadas para memoria
- Trabajo con tablas temporales con control de versiones del sistema optimizadas para memoria
- Supervisión de tablas temporales con control de versiones del sistema optimizadas para memoria
- Rendimiento de las tablas temporales con control de versiones del sistema optimizadas para memoria
- Tablas temporales
- Comprobaciones de coherencia del sistema de la tabla temporal
- Administración de la retención de datos históricos en las tablas temporales con versiones del sistema
- Funciones y vistas de metadatos de la tabla temporal