Condividi tramite


sys.dm_os_memory_objects (Transact-SQL)

Vengono restituiti gli oggetti di memoria attualmente allocati da SQL Server. È possibile utilizzare sys.dm_os_memory_objects per analizzare l'utilizzo della memoria e identificare le possibili perdite di memoria.

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

Nome colonna

Tipo di dati

Descrizione

memory_object_address

varbinary(8)

Indirizzo dell'oggetto memoria. Non ammette valori Null.

parent_address

varbinary(8)

Indirizzo dell'oggetto memoria padre. Ammette valori Null.

pages_allocated_count

int

Numero di pagine allocate dall'oggetto. Non ammette i valori Null.

Si applica a: SQL Server 2008 tramite SQL Server 2008 R2.

pages_in_bytes

bigint

Quantità di memoria in byte allocata tramite questa istanza dell'oggetto memoria. Non ammette i valori Null.

Si applica a: SQL Server 2012 tramite SQL Server 2014.

creation_options

int

Solo per uso interno. Ammette i valori Null.

bytes_used

bigint

Solo per uso interno. Ammette valori Null.

tipo

nvarchar(60)

Tipo di oggetto memoria.

Indica un componente a cui appartiene l'oggetto memoria oppure la funzione dell'oggetto memoria. Ammette i valori Null.

name

varchar(128)

Solo per uso interno. Ammette valori Null.

memory_node_id

smallint

ID di un nodo di memoria utilizzato dall'oggetto memoria. Non ammette i valori Null.

creation_time

datetime

Solo per uso interno. Ammette i valori Null.

max_pages_allocated_count

int

Numero massimo di pagine allocate dall'oggetto memoria. Non ammette i valori Null.

Si applica a: SQL Server 2008 tramite SQL Server 2008 R2.

page_size_in_bytes

int

Dimensioni in byte delle pagine allocate dall'oggetto. Non ammette i valori Null.

Si applica a: SQL Server 2012 tramite SQL Server 2014.

max_pages_in_bytes

bigint

Quantità massima di memoria utilizzata da questo oggetto memoria. Non ammette valori Null.

page_allocator_address

varbinary(8)

Indirizzo di memoria dell'allocatore di pagine. Non ammette valori Null. Per ulteriori informazioni, vedere sys.dm_os_memory_clerks (Transact-SQL).

creation_stack_address

varbinary(8)

Solo per uso interno. Ammette valori Null.

sequence_num

int

Solo per uso interno. Ammette valori Null.

Autorizzazioni

È richiesta l'autorizzazione VIEW SERVER STATE nel server.

Osservazioni

Gli oggetti memoria sono heap. Le allocazioni implementate dagli oggetti sono caratterizzate da una maggiore granularità rispetto alle allocazioni implementate dai clerk di memoria. I componenti di SQL Server utilizzano oggetti memoria anziché clerk di memoria. Gli oggetti memoria utilizzano l'interfaccia dell'allocatore di pagine del clerk di memoria per allocare le pagine. Gli oggetti memoria non utilizzano interfacce di memoria virtuale o condivisa. In base al modello di allocazione, i componenti possono creare tipi diversi di oggetti memoria per allocare aree di dimensioni arbitrarie.

Le dimensioni di pagina tipiche di un oggetto memoria sono pari a 8 KB. Gli oggetti memoria incrementale possono tuttavia avere dimensioni di pagina da 512 byte a 8 KB.

Nota

Le dimensioni di pagina non corrispondono a un'allocazione massima.Le dimensioni di pagina corrispondono invece alla granularità dell'allocazione supportata da un allocatore di pagine e implementata da un clerk di memoria.È possibile richiedere allocazioni superiori a 8 KB dagli oggetti memoria.

Esempi

Nell'esempio seguente viene restituita la quantità di memoria allocata per ogni tipo di oggetto memoria.

SELECT SUM (pages_in_bytes) as 'Bytes Used', type 
FROM sys.dm_os_memory_objects
GROUP BY type 
ORDER BY 'Bytes Used' DESC;
GO

Vedere anche

Riferimento

Funzioni e viste a gestione dinamica (Transact-SQL)

Viste a gestione dinamica relative al sistema operativo di SQL Server (Transact-SQL)

sys.dm_os_memory_clerks (Transact-SQL)