Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server 2016 (13.x) e versioni
successive di Istanza gestita di SQL di Azure
È possibile usare le viste esistenti per tenere traccia del consumo di memoria dettagliato e riepilogativo per ogni tabella ottimizzata per la memoria con versioni di sistema.
Monitoraggio delle tabelle temporali
Usa il seguente esempio di codice per monitorare le tabelle temporali che utilizzano OLTP in memoria. Questi esempi utilizzano espressioni di tabella comuni (CTE).
Consumo di memoria dettagliato
La query seguente riporta in dettaglio il consumo di memoria, suddiviso tra la tabella principale con controllo delle versioni di sistema e la tabella di staging della cronologia interna.
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';
Riepilogo del consumo di memoria
La seguente query riepiloga il consumo di memoria, indicando un totale per una tabella ottimizzata per la memoria con controllo delle versioni di sistema.
;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;
Contenuti correlati
- Tabelle temporali versionate a livello di sistema con tabelle ottimizzate per la memoria
- Creare una tabella temporale versione di sistema ottimizzata per la memoria
- Lavorare con tabelle temporali ottimizzate per la memoria e versionate a livello di sistema
- Prestazioni delle tabelle temporali ottimizzate per la memoria e con versione di sistema
- Tabelle temporali
- Verifiche di coerenza del sistema delle tabelle temporali
- Gestire la conservazione dei dati storici nelle tabelle temporali versionate dal sistema
- Funzioni e viste per i metadati delle tabelle temporali