Surveiller des tables temporelles avec contrôle de version par le système à mémoire optimisée
S’applique à : SQL Server 2016 (13.x) et versions ultérieures Base de données Azure SQL Azure SQL Managed Instance
Vous pouvez utiliser les vues existantes pour effectuer le suivi de la consommation de mémoire détaillée et résumée pour chaque table mémoire optimisée avec contrôle de version du système.
Surveiller les tables temporelles
Utilisez l’exemple de code suivant pour surveiller les tables temporelles qui utilisent OLTP en mémoire. Ces exemples utilisent des expressions de table courantes (CTEs).
Consommation de mémoire détaillée
La requête suivante détaille la consommation de mémoire, répartie par système principal-versionné et par table de mise en lots de l'historique interne.
WITH InMemoryTemporalTables
AS (
SELECT SCHEMA_NAME(T1.schema_id) AS TemporalTableSchema,
T1.object_id AS TemporalTableObjectId,
IT.object_id AS InternalTableObjectId,
OBJECT_NAME(IT.parent_object_id) AS TemporalTableName,
IT.Name AS InternalHistoryStagingName
FROM sys.internal_tables IT
INNER JOIN sys.tables T1
ON IT.parent_object_id = T1.object_id
WHERE T1.is_memory_optimized = 1
AND T1.temporal_type = 2
)
SELECT TemporalTableSchema,
T.TemporalTableName,
T.InternalHistoryStagingName,
CASE
WHEN C.object_id = T.TemporalTableObjectId
THEN 'Temporal Table Consumption'
ELSE 'Internal Table Consumption'
END ConsumedBy,
C.*
FROM sys.dm_db_xtp_memory_consumers C
INNER JOIN InMemoryTemporalTables T
ON C.object_id = T.TemporalTableObjectId
OR C.object_id = T.InternalTableObjectId
WHERE T.TemporalTableSchema = 'dbo'
AND T.TemporalTableName = 'FXCurrencyPairs';
Résumé de la consommation de mémoire
Résumé de la consommation de mémoire, avec un total pour une table à mémoire optimisée avec contrôle de version du système.
WITH InMemoryTemporalTables
AS (
SELECT SCHEMA_NAME(T1.schema_id) AS TemporalTableSchema,
T1.object_id AS TemporalTableObjectId,
IT.object_id AS InternalTableObjectId,
OBJECT_NAME(IT.parent_object_id) AS TemporalTableName,
IT.Name AS InternalHistoryStagingName
FROM sys.internal_tables IT
INNER JOIN sys.tables T1
ON IT.parent_object_id = T1.object_id
WHERE T1.is_memory_optimized = 1
AND T1.temporal_type = 2
),
DetailedConsumption
AS (
SELECT TemporalTableSchema,
T.TemporalTableName,
T.InternalHistoryStagingName,
CASE
WHEN C.object_id = T.TemporalTableObjectId
THEN 'Temporal Table Consumption'
ELSE 'Internal Table Consumption'
END ConsumedBy,
C.*
FROM sys.dm_db_xtp_memory_consumers C
INNER JOIN InMemoryTemporalTables T
ON C.object_id = T.TemporalTableObjectId
OR C.object_id = T.InternalTableObjectId
)
SELECT TemporalTableSchema TemporalTableName,
sum(allocated_bytes) AS allocated_bytes,
sum(used_bytes) AS used_bytes
FROM DetailedConsumption
WHERE TemporalTableSchema = 'dbo' ANDTemporalTableName = 'FXCurrencyPairs'
GROUP BY TemporalTableSchema,
TemporalTableName;
Contenu connexe
- Tables temporelles avec version gérée par le système avec tables à mémoire optimisée
- Créer une table temporelle à mémoire optimisée avec version système
- Travailler avec les tables temporelles avec versions gérées par le système et à mémoire optimisée
- Performances des tables temporelles optimisées en mémoire avec gestion de version 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 des métadonnées des tables temporelles