Tijdelijke tabellen met systeemversies bewaken die zijn geoptimaliseerd voor geheugen
van toepassing op: SQL Server 2016 (13.x) en hoger
Azure SQL Managed Instance
U kunt bestaande weergaven gebruiken om gedetailleerd en samengevat geheugenverbruik bij te houden voor elke tabel met systeemversies die zijn geoptimaliseerd voor geheugen.
Tijdelijke tabellen bewaken
Gebruik de volgende voorbeeldcode om tijdelijke tabellen te bewaken die gebruikmaken van In-Memory OLTP. In deze voorbeelden wordt gebruikgemaakt van veelgebruikte tabelexpressies (CTE's).
Gedetailleerd geheugenverbruik
De volgende query bevat informatie over het geheugenverbruik, gesplitst per hoofdsysteemversie en interne faseringstabel voor geschiedenis.
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';
Samenvatting van geheugenverbruik
De volgende query geeft een overzicht van het geheugenverbruik, met een totaal voor een tabel met systeemversies die zijn geoptimaliseerd voor geheugen.
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;
Verwante inhoud
- Systeem-geversioneerde temporele tabellen met geheugen-geoptimaliseerde tabellen
- een door het geheugen geoptimaliseerde systeem-geverversioneerde temporele tabel maken
- Werken met door het geheugen geoptimaliseerde, systeem-versiegebonden temporele tabellen
- voor geheugen geoptimaliseerde systeemversie van tijdelijke tabelprestaties
- tijdelijke tabellen
- consistentiecontroles van het tijdelijke tabelsysteem
- Het bewaren van historische gegevens in tijdelijke tabellen met systeemversies beheren
- weergaven en functies van metagegevens van tijdelijke tabellen