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
Vous pouvez utiliser les vues existantes pour suivre la consommation de mémoire détaillée et agrégée de chaque table optimisée en mémoire avec versionnement géré par le système.
Surveiller les tables temporelles
Utilisez le code d’exemple suivant pour surveiller les tables temporelles qui utilisent l’OLTP en mémoire. Ces exemples utilisent des expressions de table courantes (CTE).
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,
t1.object_id AS InternalTableObjectId,
OBJECT_NAME(t1.parent_object_id) AS TemporalTableName,
t1.Name AS InternalHistoryStagingName
FROM sys.internal_tables AS t1
INNER JOIN sys.tables AS t1
ON t1.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 AS ConsumedBy,
c.*
FROM sys.dm_db_xtp_memory_consumers AS c
INNER JOIN InMemoryTemporalTables AS 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
La requête suivante résume la consommation de mémoire, avec un total pour une table à mémoire optimisée dont le versionnement est géré par le système.
;WITH InMemoryTemporalTables
AS (
SELECT SCHEMA_NAME(t1.schema_id) AS TemporalTableSchema,
t1.object_id AS TemporalTableObjectId,
t1.object_id AS InternalTableObjectId,
OBJECT_NAME(t1.parent_object_id) AS TemporalTableName,
t1.Name AS InternalHistoryStagingName
FROM sys.internal_tables t1
INNER JOIN sys.tables t1
ON t1.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 AS 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 à versionnement géré par le système avec tables optimisées en mémoire
- Créer une table temporelle optimisée en mémoire à versionnement géré par le système
- Utiliser des 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