Überwachen von speicheroptimierten temporalen Tabellen mit Systemversionsverwaltung
Gilt für: SQL Server 2016 (13.x) und höher Azure SQL-Datenbank Azure SQL Managed Instance
Sie können vorhandene Ansichten verwenden, um die Speicherauslastung für jede speicheroptimierte Tabelle mit Systemversionsverwaltung im Detail und zusammengefasst nachzuverfolgen.
Überwachen von temporalen Tabellen
Verwenden Sie den folgenden Beispielcode zum Überwachen von temporalen Tabellen, die In-Memory-OLTP verwenden. In diesen Beispielen werden allgemeine Tabellenausdrücke (CTEs) verwendet.
Detaillierte Speicherauslastung
Die folgende Abfrage liefert Detailinformationen zur Speicherauslastung, getrennt nach Haupttabelle mit Systemversionsverwaltung und interner Stagingverlaufstabelle.
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';
Zusammenfassung der Speicherauslastung
Die folgende Abfrage liefert eine Zusammenfassung der Speicherauslastung mit der Gesamtauslastung für eine speicheroptimierte Tabelle mit Systemversionsverwaltung.
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;
Zugehöriger Inhalt
- Temporale Tabellen mit Systemversionsverwaltung für speicheroptimierte Tabellen
- Erstellen einer speicheroptimierten temporalen Tabelle mit Systemversionsverwaltung
- Arbeiten mit speicheroptimierten temporalen Tabellen mit Systemversionsverwaltung
- Systemleistung bei speicheroptimierten temporalen Tabellen mit Systemversionsverwaltung
- Temporale Tabellen
- Systemkonsistenzprüfungen von temporalen Tabellen
- Verwalten der Beibehaltung von Verlaufsdaten in temporalen Tabellen mit Systemversionsverwaltung
- Metadatenansichten und Funktionen für temporale Tabellen