Freigeben über


sys.dm_db_xtp_memory_consumers (Transact-SQL)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance

Meldet die Speicherverbraucher auf Datenbankebene im OLTP-Datenbankmodul auf Speicherebene. Diese Sicht gibt eine Zeile für jeden Arbeitsspeicherconsumer zurück, den die Datenbank-Engine verwendet. Verwenden Sie diesen DMV, um zu sehen, wie der Speicher über verschiedene interne Objekte verteilt wird.

Weitere Informationen finden Sie in den Übersichts- und Verwendungsszenarien von In-Memory OLTP.

Hinweis

Die Ausgabe dieser dynamischen Verwaltungsansicht des Systems kann je nach installierter SQL Server-Version unterschiedlich sein.

Spaltenname Datentyp BESCHREIBUNG
memory_consumer_id bigint ID (intern) des Arbeitsspeicherconsumers.
memory_consumer_type int Der Typ des Arbeitsspeicherconsumers:

0 = Aggregation. (Aggregiert die Speicherauslastung von mindestens zwei Verbrauchern. Sie sollte nicht angezeigt werden.)

2 = VARHEAP (Verfolgt die Speicherauslastung für einen Heap mit variabler Länge nach.)

3 = HASH (Verfolgt den Speicherverbrauch für einen Index nach.)

4 = PGPOOL (DB-Seitenpool: Verfolgt die Speichernutzung für einen Datenbankseitenpool, der für Laufzeitvorgänge verwendet wird. Tabellenvariablen und einige serialisierbare Scans. Pro Datenbank gibt es nur einen Speicherverbraucher dieses Typs.)
memory_consumer_type_desc nvarchar(64) Typ des Speicherverbrauchs: VARHEAP, HASH, oder PGPOOL.

0 - (Sollte nicht angezeigt werden)
2- VARHEAP
3- HASH
4- PGPOOL
memory_consumer_desc nvarchar(64) Beschreibung der Speicher-Consumer-Instanz. Weitere Informationen hierzu können Sie in der folgenden Tabelle anzeigen.
object_id bigint Die Objekt-ID, der der belegte Arbeitsspeicher attributiert wird. Ein negativer Wert für Systemobjekte.
xtp_object_id bigint Die IN-Memory OLTP-Objekt-ID, die der speicheroptimierten Tabelle entspricht.
index_id int Die Index-ID des Consumers (sofern vorhanden). NULL für Basistabellen.
allocated_bytes bigint Anzahl der für den Consumer reservierten Bytes.
used_bytes bigint Die von diesem Consumer verwendeten Bytes. Gilt nur für VARHEAP.
allocation_count int Anzahl der Zuordnungen.
partition_count int Nur zur internen Verwendung.
sizeclass_count int Nur zur internen Verwendung.
min_sizeclass int Nur zur internen Verwendung.
max_sizeclass int Nur zur internen Verwendung.
memory_consumer_address varbinary Interne Adresse des Consumers. Nur zur internen Verwendung.

In der folgenden Tabelle werden die speicherverbraucher beschrieben, die in der memory_consumer_type Spalte angegeben sind:

Speicherverbraucher Beschreibung type
256K page pool Speicherpool, der während der Prüfpunktaktivität verwendet wird. PGPOOL
4K page pool Speicherpool, der während der Prüfpunktaktivität verwendet wird. PGPOOL
Checkpoint table Nur zur internen Verwendung. VARHEAP
Ckpt file table Nur zur internen Verwendung. VARHEAP
Ckpt file watermark table Nur zur internen Verwendung. VARHEAP
Database internal heap Wird verwendet, um Datenbankdaten zuzuweisen, die in Speicherabbildern enthalten sind, und keine Benutzerdaten enthalten. VARHEAP
Database user heap Wird zum Zuordnen von Benutzerdaten für eine Datenbank (d. h. Zeilen) verwendet. VARHEAP
Encryption table Nur zur internen Verwendung. VARHEAP
Hash index Verfolgt die Speicherauslastung für einen Index nach. Dies object_id gibt die Tabelle und den index_id Hashindex selbst an. HASH
Large Rows File table Nur zur internen Verwendung. VARHEAP
LOB Page Allocator Heap-Speicher, der von großen Zeilen verwendet wird. VARHEAP
Logical range index partition table Nur zur internen Verwendung. VARHEAP
Logical root fragment table Nur zur internen Verwendung. VARHEAP
Logical Root table Nur zur internen Verwendung. VARHEAP
Logical Sequence Object table Nur zur internen Verwendung. VARHEAP
Physical range index partition table Nur zur internen Verwendung. VARHEAP
Physical root fragment table Nur zur internen Verwendung. VARHEAP
Physical Root table Nur zur internen Verwendung. VARHEAP
Physical Sequence object table Nur zur internen Verwendung. VARHEAP
Range index heap Privater Heap, der vom Bereichsindex zum Zuordnen von Bw-Strukturseiten verwendet wird. VARHEAP
Storage internal heap Nur zur internen Verwendung. VARHEAP
Storage user heap Nur zur internen Verwendung. VARHEAP
Table heap Heap-Speicher, der von In-Memory-Tabellen verwendet wird. VARHEAP
Tail cache 256K page pool Nur zur internen Verwendung. PGPOOL
Tx Segment table Nur zur internen Verwendung. VARHEAP

Hinweise

Wenn eine speicheroptimierte Tabelle über einen Spaltenspeicherindex verfügt, verwendet das System einige interne Tabellen, die Speicher verbrauchen, um Daten für den Spaltenspeicherindex nachzuverfolgen. Ausführliche Informationen zu diesen internen Tabellen und Beispielabfragen, die ihren Speicherverbrauch anzeigen, finden Sie unter sys.memory_optimized_tables_internal_attributes (Transact-SQL).

Berechtigungen

Alle Zeilen werden zurückgegeben, wenn Sie über die VIEW DATABASE STATE-Berechtigung für die aktuelle Datenbank verfügen. Andernfalls wird ein leeres Rowset zurückgegeben.

Wenn Sie nicht über die Berechtigung "DATENBANK ANZEIGEN" verfügen, werden alle Spalten für Zeilen in Tabellen zurückgegeben, für die Sie SELECT-Berechtigungen besitzen.

In SQL Server 2019 (15.x) und früheren Versionen werden Systemtabellen nur für Benutzer mit VIEW DATABASE STATE-Berechtigung zurückgegeben.

Für SQL Server 2022 (16.x) und höhere Versionen benötigen Sie die BERECHTIGUNG "DATENBANKLEISTUNGSSTATUS ANZEIGEN" für die Datenbank.

Beispiele

Abfragen von Speicherverbrauchern in der aktuellen Datenbank

Führen Sie die folgende Abfrage für die Beispieldatenbank WideWorldImporters aus, die speicheroptimierte Tabellen enthält:

SELECT CONVERT(CHAR(10), OBJECT_NAME(object_id)) AS Name,
    memory_consumer_type_desc,
    memory_consumer_desc,
    object_id,
    index_id,
    allocated_bytes,
    used_bytes
FROM sys.dm_db_xtp_memory_consumers;

Hier sehen Sie das Ergebnis.

Name       memory_consumer_type_desc memory_consumer_desc                   object_id   index_id    allocated_bytes      used_bytes
---------- ------------------------- -------------------------------------- ----------- ----------- ----------------- ------------
NULL       VARHEAP                   Range index heap                       -15         1           131072               176
NULL       VARHEAP                   Physical range index partition table   -15         NULL        0                    0
NULL       VARHEAP                   Range index heap                       -14         2           131072               192
NULL       VARHEAP                   Range index heap                       -14         1           131072               208
NULL       VARHEAP                   Large Rows File table                  -14         NULL        0                    0
NULL       HASH                      Hash index                             -13         1           2048                 2048
NULL       VARHEAP                   Encryption table                       -13         NULL        0                    0
NULL       HASH                      Hash index                             -10         2           32768                32768
NULL       HASH                      Hash index                             -10         1           32768                32768
NULL       VARHEAP                   Tx Segment table                       -10         NULL        65536                544
NULL       HASH                      Hash index                             -11         1           32768                32768
NULL       VARHEAP                   Checkpoint table                       -11         NULL        131072               320
NULL       HASH                      Hash index                             -12         1           8192                 8192
NULL       VARHEAP                   Ckpt file table                        -12         NULL        131072               3120
NULL       HASH                      Hash index                             -9          1           2048                 2048
NULL       VARHEAP                   Ckpt file watermark table              -9          NULL        131072               1280
NULL       VARHEAP                   Range index heap                       -7          1           262144               976
NULL       VARHEAP                   Physical Sequence Object table         -7          NULL        65536                864
NULL       HASH                      Hash index                             -3          1           2048                 2048
NULL       VARHEAP                   Physical root fragment table           -3          NULL        0                    0
NULL       HASH                      Hash index                             0           2           8192                 8192
NULL       HASH                      Hash index                             0           1           32768                32768
NULL       VARHEAP                   Physical Root table                    NULL        NULL        327680               12160
NULL       PGPOOL                    Tail cache 256K page pool              0           NULL        262144               262144
NULL       PGPOOL                    256K page pool                         0           NULL        35389440             18874368
NULL       PGPOOL                    64K page pool                          0           NULL        131072               65536
NULL       PGPOOL                    4K page pool                           0           NULL        49152                40960
NULL       VARHEAP                   Storage internal heap                  NULL        NULL        786432               4816
NULL       VARHEAP                   Storage user heap                      NULL        NULL        262144               22496
ColdRoomTe VARHEAP                   Range index heap                       1179151246  3           196608               800
ColdRoomTe VARHEAP                   Range index heap                       1179151246  2           196608               800
memory_opt VARHEAP                   Range index heap                       1211151360  2           131072               208
VehicleTem VARHEAP                   Range index heap                       1243151474  2           11796480             1181824
ColdRoomTe VARHEAP                   Table heap                             1179151246  NULL        65536                384
memory_opt VARHEAP                   Table heap                             1211151360  NULL        0                    0
VehicleTem VARHEAP                   Table heap                             1243151474  NULL        33423360             32802112
VehicleTem VARHEAP                   Range index heap                       1243151474  2           131072               160
VehicleTem VARHEAP                   LOB Page Allocator                     1243151474  NULL        0                    0
VehicleTem VARHEAP                   Table heap                             1243151474  NULL        0                    0
NULL       VARHEAP                   Range index heap                       -15         1           327680               176
NULL       VARHEAP                   Logical range index partition table    -15         NULL        0                    0
NULL       HASH                      Hash index                             -7          1           32768                32768
NULL       VARHEAP                   Logical Sequence Object table          -7          NULL        65536                600
NULL       HASH                      Hash index                             -3          1           2048                 2048
NULL       VARHEAP                   Logical root fragment table            -3          NULL        0                    0
NULL       HASH                      Hash index                             0           1           32768                32768
NULL       VARHEAP                   Logical Root table                     NULL        NULL        327680               11120
NULL       PGPOOL                    Tail cache 256K page pool              0           NULL        262144               0
NULL       PGPOOL                    256K page pool                         0           NULL        10485760             0
NULL       PGPOOL                    64K page pool                          0           NULL        131072               0
NULL       PGPOOL                    4K page pool                           0           NULL        32768                0
NULL       VARHEAP                   Database internal heap                 NULL        NULL        1048576              8016
NULL       VARHEAP                   Database user heap                     NULL        NULL        65536                1024

Der von diesem DMV zugewiesene und verwendete Gesamtspeicher entspricht der Objektebene in sys.dm_db_xtp_table_memory_stats.

SELECT SUM(allocated_bytes) / (1024 * 1024) AS total_allocated_MB,
    SUM(used_bytes) / (1024 * 1024) AS total_used_MB
FROM sys.dm_db_xtp_memory_consumers;

Hier sehen Sie das Ergebnis.

total_allocated_MB total_used_MB
------------------ --------------------
92                 51