Condividi tramite


sys.dm_db_xtp_memory_consumers (Transact-SQL)

Indica i consumer di memoria a livello di database nel motore di database di OLTP in memoria. Nella vista viene restituita una riga per ogni consumer di memoria utilizzato dal motore di database.

Per ulteriori informazioni, vedere OLTP in memoria (ottimizzazione per la memoria).

Si applica a: SQL Server (da SQL Server 2014 a versione corrente).

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 due o più consumer. Non deve essere visualizzato.

  • 2=VARHEAP. Tiene traccia dell'utilizzo di memoria per un heap a lunghezza variabile.

  • 3=HASH. Tiene traccia dell'utilizzo di memoria per un indice.

  • 5=pool di pagine del DB. Tiene traccia dell'utilizzo di memoria per un pool di pagine del database per le operazioni di runtime. Ad esempio, le variabili di tabella e alcune analisi serializzabili. È disponibile un solo consumer di memoria di questo tipo per database).

memory_consumer_type_desc

nvarchar(64)

Tipo di consumer di memoria: VARHEAP, HASH o PGPOOL.

  • 0 – Non deve essere visualizzato.

  • 2 - VARHEAP

  • 3 - HASH

  • 5 - PGPOOL

memory_consumer_desc

nvarchar(64)

Descrizione dell'istanza del consumer di memoria:

  • VARHEAP

    Heap del database. Utilizzo per allocare i dati utente per un database (righe).

    Heap di sistema del database. Utilizzato per allocare i dati del database che verranno inclusi nei dump della memoria e non includono dati utente.

    Heap dell'indice dell'intervallo. Heap privato utilizzato dall'indice dell'intervallo per allocare pagine BW.

  • HASH

    Nessuna descrizione poiché object_id indica la tabella e index_id l'indice hash.

  • PGPOOL

    Per il database è disponibile solo un pool di pagine a 64 K del database di pool di pagine.

object_id

bigint

ID oggetto a cui è attribuita la memoria allocata. Un valore negativo per gli oggetti di sistema.

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.

Osservazioni

Nell'output gli allocatori a livello di database fanno riferimento a tabelle utente, indici e tabelle di sistema. VARHEAP con object_id = NULL indica la memoria allocata alle tabelle con colonne a lunghezza variabile.

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, verranno restituite tutte le colonne per le righe nelle tabelle per cui si dispone dell'autorizzazione SELECT.

Vengono restituite le tabelle di sistema solo per gli utenti con l'autorizzazione VIEW DATABASE STATE.

Esempi

-- memory consumers (database level)
SELECT OBJECT_NAME(object_id), * 
FROM sys.dm_db_xtp_memory_consumers;

Scenario utente

-- memory consumers (database level)

select  convert(char(10), object_name(object_id)) as Name, 
convert(char(10),memory_consumer_type_desc ) as memory_consumer_type_desc, object_id,index_id, allocated_bytes,  used_bytes 
from sys.dm_db_xtp_memory_consumers

Di seguito è riportato l'output con un subset di colonne. Gli allocatori a livello di database fanno riferimento a tabelle utente, indici e tabelle di sistema. VARHEAP con object_id = NULL (ultima riga) fa riferimento alla memoria allocata alle righe di dati delle tabelle (t1 in questo esempio). I byte allocati, una volta convertiti in MB, sono 1340 MB.

Name       memory_consumer_type_desc object_id   index_id    allocated_bytes      used_bytes
---------- ------------------------- ----------- ----------- -------------------- --------------------
t3         HASH                      629577281   2           8388608              8388608
t2         HASH                      597577167   2           8388608              8388608
t1         HASH                      565577053   2           1048576              1048576
NULL       HASH                      -6          1           2048                 2048
NULL       VARHEAP                   -6          NULL        0                    0
NULL       HASH                      -5          3           8192                 8192
NULL       HASH                      -5          2           8192                 8192
NULL       HASH                      -5          1           8192                 8192
NULL       HASH                      -4          1           2048                 2048
NULL       VARHEAP                   -4          NULL        0                    0
NULL       HASH                      -3          1           2048                 2048
NULL       HASH                      -2          2           8192                 8192
NULL       HASH                      -2          1           8192                 8192
NULL       VARHEAP                   -2          NULL        196608               26496
NULL       HASH                      0           1           2048                 2048
NULL       PGPOOL                    0           NULL        0                    0
NULL       VARHEAP                   NULL        NULL        1405943808           1231220560

(17 row(s) affected)

La memoria totale allocata e utilizzata da questa DMV è la stessa del livello di oggetto in sys.dm_db_xtp_table_memory_stats (Transact-SQL).

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


total_allocated_MB   total_used_MB
-------------------- --------------------
1358                 1191

Vedere anche

Concetti

Viste a gestione dinamica correlate alle tabelle con ottimizzazione per la memoria (Transact-SQL)