Création d’une table temporelle de contrôle de version du système à mémoire optimisée
S’applique à : SQL Server 2016 (13.x) et versions ultérieures Azure SQL DatabaseAzure SQL Managed Instance
De même qu’il est possible de créer une table de l’historique sur disque, vous pouvez créer une table temporelle à mémoire optimisée et ce, de différentes manières.
Notes
Pour créer des tables optimisées en mémoire, vous devez d’abord créer le Groupe de fichiers mémoire optimisé.
La création d’une table temporelle avec une table de l’historique par défaut est une option pratique lorsque vous voulez contrôler l’affectation des noms. Elle dépend toujours du système pour créer la table de l’historique avec la configuration par défaut. Dans l’exemple ci-dessous, une nouvelle table temporelle avec contrôle de version du système de mémoire optimisée est liée à une nouvelle table de l’historique basée sur des disques.
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 )
);
Il est utile de créer une table temporelle liée à une table de l’historique existante lorsque vous devez activer le contrôle de version du système à l’aide d’une table existante, par exemple quand vous voulez migrer une solution temporelle personnalisée vers une prise en charge intégrée. Dans l’exemple ci-dessous, une table temporelle est créée et liée à une table de l’historique existante.
--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
)
;
Consultez
- Tables temporelles avec version gérée par le système avec tables à mémoire optimisée
- Utilisation des tables temporelles avec versions gérées par le système et à mémoire optimisée
- Surveillance des tables temporelles avec contrôle de version du système à mémoire optimisée
- Considérations relatives aux performances des tables temporelles optimisées en mémoire à version contrôlée par le système
- Tables temporelles
- Vérifications de cohérence système des tables temporelles
- Gérer la rétention des données d’historique dans les tables temporelles avec contrôle de version par le système
- Vues et fonctions de métadonnées de table temporelle
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour