Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : SQL Server 2016 (13.x) et versions
ultérieures d’Azure SQL Managed Instance
Cet article décrit en quoi l’utilisation d’une table temporelle à versionnement système optimisée en mémoire diffère de celle d’une table temporelle à versionnement système sur disque.
Note
Les tables temporelles optimisées en mémoire sont disponibles uniquement dans SQL Server et Azure SQL Managed Instance. Les tables optimisées en mémoire et les tables temporelles sont disponibles indépendamment dans Azure SQL Database.
Découvrir les métadonnées
Pour découvrir des métadonnées concernant une table temporelle optimisée en mémoire pour le système, combinez les informations issues de sys.tables et sys.internal_tables. Une table temporelle à versionnage par le système correspond à la colonne parent_object_id de la table d’historique interne en mémoire.
Cet exemple indique comment exécuter une requête sur ces tables et joindre ces dernières.
SELECT SCHEMA_NAME(T1.schema_id) AS TemporalTableSchema,
OBJECT_NAME(IT.parent_object_id) AS TemporalTableName,
T1.object_id AS TemporalTableObjectId,
IT.Name AS InternalHistoryStagingName,
SCHEMA_NAME(T2.schema_id) AS HistoryTableSchema,
OBJECT_NAME(T1.history_table_id) AS HistoryTableName
FROM sys.internal_tables AS IT
INNER JOIN sys.tables AS T1
ON IT.parent_object_id = T1.object_id
INNER JOIN sys.tables AS T2
ON T1.history_table_id = T2.object_id
WHERE T1.is_memory_optimized = 1
AND T1.temporal_type = 2;
Modifier des données
Vous pouvez modifier des tables temporelles optimisées en mémoire via des procédures stockées compilées nativement. Ces procédures permettent de convertir des tables non optimisées en mémoire temporelle et de conserver les procédures existantes stockées nativement.
Cet exemple montre comment modifier une table existante dans un module compilé nativement.
CREATE PROCEDURE dbo.UpdateFXCurrencyPair (
@ProviderID INT,
@CurrencyID1 INT,
@CurrencyID2 INT,
@BidRate DECIMAL (8, 4),
@AskRate DECIMAL (8, 4)
)
WITH NATIVE_COMPILATION,
SCHEMABINDING,
EXECUTE AS OWNER
AS
BEGIN ATOMIC
WITH (TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'English')
UPDATE dbo.FXCurrencyPairs
SET AskRate = @AskRate,
BidRate = @BidRate
WHERE ProviderID = @ProviderID
AND CurrencyID1 = @CurrencyID1
AND CurrencyID2 = @CurrencyID2;
END;
Contenu connexe
- Tables temporelles à versionnement géré par le système avec tables optimisées en mémoire
- Créer une table temporelle versionnée par le système et optimisée en mémoire
- Surveiller les tables temporelles versionnées par le système et optimisées en mémoire
- Performances des tables temporelles à versionnement géré par le système et optimisées en mémoire
- Tables temporelles
- Vérifications de cohérence système des tables temporelles
- Gérer la conservation des données historiques dans les tables temporelles versionnées par le système
- Vues et fonctions des métadonnées des tables temporelles