Condividi tramite


sys.dm_db_xtp_memory_consumers (Transact-SQL)

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure

Segnala i consumer di memoria a livello di database nel motore di database OLTP in memoria. Nella vista viene restituita una riga per ogni consumer di memoria utilizzato dal motore di database. Usare questa DMV per vedere come la memoria viene distribuita tra diversi oggetti interni.

Per altre informazioni, vedere Panoramica oltp in memoria e scenari di utilizzo.

Nota

L'output di questa vista a gestione dinamica del sistema può essere diverso, a seconda della versione di SQL Server installata.

Nome colonna Tipo di dati Descrizione
memory_consumer_id bigint ID interno del consumer di memoria.
memory_consumer_type int Tipo di consumer di memoria:

0 = Aggregazione. Aggrega l'utilizzo della memoria di due o più consumer. Non dovrebbe essere visualizzato.

2 = VARHEAP (tiene traccia del consumo di memoria per un heap a lunghezza variabile).

3 = HASH (Tiene traccia dell'utilizzo della memoria per un indice).

4 = PGPOOL (pool di pagine del database: tiene traccia del consumo di memoria per un pool di pagine di database usato per le operazioni di runtime. Ad esempio, variabili di tabella e alcune analisi serializzabili. Esiste un solo consumer di memoria di questo tipo per ogni database.
memory_consumer_type_desc nvarchar(64) Tipo di consumer di memoria: VARHEAP, HASHo PGPOOL.

0 - (non dovrebbe essere visualizzato)
2- VARHEAP
3- HASH
4- PGPOOL
memory_consumer_desc nvarchar(64) Descrizione dell'istanza del consumer di memoria. Per altre informazioni, vedere la tabella seguente.
object_id bigint ID oggetto a cui è attribuita la memoria allocata. Un valore negativo per gli oggetti di sistema.
xtp_object_id bigint ID oggetto OLTP in memoria che corrisponde alla tabella ottimizzata per la memoria.
index_id int ID dell'indice del consumer, se disponibile. NULL per le tabelle di base.
allocated_bytes bigint Numero di byte riservati al consumer.
used_bytes bigint Byte utilizzati dal consumer. Si applica solo a VARHEAP.
allocation_count int Numero di allocazioni.
partition_count int Solo per uso interno.
sizeclass_count int Solo per uso interno.
min_sizeclass int Solo per uso interno.
max_sizeclass int Solo per uso interno.
memory_consumer_address varbinary Indirizzo interno del consumer. Solo per uso interno.

Nella tabella seguente vengono descritti i consumer di memoria specificati nella memory_consumer_type colonna :

Consumer di memoria Descrizione Tipo
256K page pool Pool di memoria usato durante l'attività del checkpoint. PGPOOL
4K page pool Pool di memoria usato durante l'attività del checkpoint. PGPOOL
Checkpoint table Solo per uso interno. VARHEAP
Ckpt file table Solo per uso interno. VARHEAP
Ckpt file watermark table Solo per uso interno. VARHEAP
Database internal heap Usato per allocare i dati del database inclusi nei dump della memoria e non includere i dati utente. VARHEAP
Database user heap Utilizzo per allocare i dati utente per un database (righe). VARHEAP
Encryption table Solo per uso interno. VARHEAP
Hash index Tiene traccia del consumo di memoria per un indice. Indica object_id la tabella e l'oggetto index_id dell'indice hash stesso. HASH
Large Rows File table Solo per uso interno. VARHEAP
LOB Page Allocator Memoria heap usata da righe di grandi dimensioni. VARHEAP
Logical range index partition table Solo per uso interno. VARHEAP
Logical root fragment table Solo per uso interno. VARHEAP
Logical Root table Solo per uso interno. VARHEAP
Logical Sequence Object table Solo per uso interno. VARHEAP
Physical range index partition table Solo per uso interno. VARHEAP
Physical root fragment table Solo per uso interno. VARHEAP
Physical Root table Solo per uso interno. VARHEAP
Physical Sequence object table Solo per uso interno. VARHEAP
Range index heap Heap privato usato dall'indice di intervallo per allocare pagine albero Bw. VARHEAP
Storage internal heap Solo per uso interno. VARHEAP
Storage user heap Solo per uso interno. VARHEAP
Table heap Memoria heap usata dalle tabelle in memoria. VARHEAP
Tail cache 256K page pool Solo per uso interno. PGPOOL
Tx Segment table Solo per uso interno. VARHEAP

Osservazioni:

Quando una tabella ottimizzata per la memoria ha un indice columnstore, il sistema usa alcune tabelle interne, che utilizzano memoria, per tenere traccia dei dati per l'indice columnstore. Per informazioni dettagliate su queste tabelle interne e query di esempio che mostrano il consumo di memoria, vedere sys.memory_optimized_tables_internal_attributes (Transact-SQL).For details about these internal tables and sample queries showing their memory consumption, see sys.memory_optimized_tables_internal_attributes (Transact-SQL).

Autorizzazioni

Vengono restituite tutte le righe se si dispone dell'autorizzazione VIEW DATABASE STATE per il database corrente. In caso contrario, viene restituito un set di righe vuoto.

Se non si dispone dell'autorizzazione VIEW DATABASE, vengono restituite tutte le colonne per le righe nelle tabelle per cui si dispone dell'autorizzazione SELECT.

In SQL Server 2019 (15.x) e nelle versioni precedenti, le tabelle di sistema vengono restituite solo per gli utenti con autorizzazione VIEW DATABASE STATE.

Per SQL Server 2022 (16.x) e versioni successive, è necessaria l'autorizzazione VIEW DATABASE PERFORMANCE STATE per il database.

Esempi

Eseguire query sui consumer di memoria nel database corrente

Eseguire la query seguente sul database di esempio WideWorldImporters , che contiene tabelle ottimizzate per la memoria:

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;

Il set di risultati è il seguente.

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

La memoria totale allocata e usata da questa DMV è uguale al livello di oggetto 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;

Il set di risultati è il seguente.

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