Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2016 (13.x) i nowsze wersje
usługi Azure SQL Managed Instance
Za pomocą istniejących widoków można śledzić szczegółowe i podsumowane zużycie pamięci dla każdej tabeli zoptymalizowanej pod kątem pamięci w wersji systemu.
Monitorowanie tabel czasowych
Użyj poniższego przykładowego kodu do monitorowania tabel czasowych wykorzystujących OLTP w pamięci. Te przykłady wykorzystują wspólne wyrażenia tabelowe (CTE).
Szczegółowe użycie pamięci
Poniższe zapytanie przedstawia szczegółowe informacje na temat zużycia pamięci, podzielone na główną tabelę wersjonowaną przez system oraz wewnętrzną tabelę tymczasową historii.
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';
Podsumowanie użycia pamięci
Poniższe zapytanie podsumowuje zużycie pamięci z sumą dla tabeli zoptymalizowanej pod kątem pamięci w wersji systemowej.
;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;
Treści powiązane
- Systemowo wersjonowane tabele czasowe z tabelą zoptymalizowaną pod kątem pamięci
- Tworzenie tabeli czasowej zoptymalizowanej pod kątem pamięci w wersji systemowej
- Praca z systemowymi tabelami czasowymi zoptymalizowanymi pod kątem pamięci
- Wydajność systemowo wersjonowanych tabel czasowych zoptymalizowanych pod kątem pamięci
- Tabele danych czasowych
- sprawdzanie spójności systemu tabel czasowych
- Zarządzanie przechowywaniem danych historycznych w systemowo wersjonowanych tabelach czasowych
- widoki i funkcje metadanych tabeli temporalnej