sys.dm_os_memory_objects (Transact-SQL)
Si applica a: SQL Server
database SQL di Azure
Istanza gestita di SQL di Azure
azure Synapse Analytics Analytics
Platform System (PDW)
Restituisce gli oggetti di memoria attualmente allocati da SQL Server. È possibile usare sys.dm_os_memory_objects per analizzare l'uso della memoria e per identificare possibili perdite di memoria.
Nota
Per chiamare questa operazione da Azure Synapse Analytics o da Platform System (PDW), usare il nome sys.dm_pdw_nodes_os_memory_objects. Questa sintassi non è supportata da pool SQL serverless in Azure Synapse Analytics.
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
memory_object_address | varbinary(8) | Indirizzo dell'oggetto memoria. Non ammette i valori Null. |
parent_address | varbinary(8) | Indirizzo dell'oggetto memoria padre. Ammette i valori Null. |
pages_allocated_count | int | Si applica a: SQL Server 2008 (10.0.x) a SQL Server 2008 R2 (10.50.x). Numero di pagine allocate dall'oggetto. Non ammette i valori Null. |
pages_in_bytes | bigint | Si applica a: SQL Server 2012 (11.x) e versioni successive. Quantità di memoria in byte allocata tramite questa istanza dell'oggetto memoria. Non ammette i valori Null. |
creation_options | int | Solo per uso interno. Ammette i valori Null. |
bytes_used | bigint | Solo per uso interno. Ammette i valori Null. |
type | 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 | Si applica a: SQL Server 2008 (10.0.x) a SQL Server 2008 R2 (10.50.x). Numero massimo di pagine allocate dall'oggetto memoria. Non ammette i valori Null. |
page_size_in_bytes | int | Si applica a: SQL Server 2012 (11.x) e versioni successive. Dimensioni in byte delle pagine allocate dall'oggetto. Non ammette i valori Null. |
max_pages_in_bytes | bigint | Quantità massima di memoria utilizzata da questo oggetto memoria. Non ammette i valori Null. |
page_allocator_address | varbinary(8) | Indirizzo di memoria dell'allocatore di pagine. Non ammette i valori Null. Per altre informazioni, vedi sys.dm_os_memory_clerks (Transact-SQL). |
creation_stack_address | varbinary(8) | Solo per uso interno. Ammette i valori Null. |
sequence_num | int | Solo per uso interno. Ammette i valori Null. |
partition_type | int | Si applica a: SQL Server 2016 (13.x) e versioni successive. Tipo di partizione: 0 - Oggetto memoria non partizionabile 1 - Oggetto memoria partizionabile, attualmente non partizionato 2 - Oggetto memoria partizionabile, partizionato dal nodo NUMA. In un ambiente con un singolo nodo NUMA equivale a 1. 3 - Oggetto memoria partizionabile, partizionato dalla CPU. |
contention_factor | real | Si applica a: SQL Server 2016 (13.x) e versioni successive. Valore che specifica la contesa su questo oggetto memoria, con 0 che non significa contesa. Il valore viene aggiornato ogni volta che è stato effettuato un numero specificato di allocazioni di memoria che riflettono la contesa durante tale periodo. Si applica solo agli oggetti memoria thread-safe. |
waiting_tasks_count | bigint | Si applica a: SQL Server 2016 (13.x) e versioni successive. Numero di attese su questo oggetto memoria. Questo contatore viene incrementato ogni volta che la memoria viene allocata da questo oggetto memoria. L'incremento è il numero di attività attualmente in attesa dell'accesso a questo oggetto memoria. Si applica solo agli oggetti memoria thread-safe. Si tratta di un valore ottimale senza una garanzia di correttezza. |
exclusive_access_count | bigint | Si applica a: SQL Server 2016 (13.x) e versioni successive. Specifica la frequenza di accesso esclusivo a questo oggetto memoria. Si applica solo agli oggetti memoria thread-safe. Si tratta di un valore ottimale senza una garanzia di correttezza. |
pdw_node_id | int | Si applica a: Azure Synapse Analytics, Piattaforma di analisi (PDW) Identificatore del nodo in cui è attiva la distribuzione. |
partition_type, contention_factor, waiting_tasks_count e exclusive_access_count non sono ancora implementati in database SQL.
In SQL Server e Istanza gestita di SQL è richiesta l'autorizzazione VIEW SERVER STATE
.
In database SQL obiettivi di servizio Basic, S0 e S1 e per i database nei pool elastici, è necessario l'account amministratore del server, l'account amministratore di Microsoft Entra o l'appartenenza al ruolo del ##MS_ServerStateReader##
server. Per tutti gli altri obiettivi di servizio database SQL, è necessaria l'autorizzazione VIEW DATABASE STATE
per il database o l'adesione ruolo del server ##MS_ServerStateReader##
.
È richiesta l'autorizzazione VIEW SERVER PERFORMANCE STATE per il server.
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 usano oggetti di memoria anziché i 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.
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
Viste a gestione dinamica correlate al sistema operativo SQL Server (Transact-SQL)
sys.dm_os_memory_clerks (Transact-SQL)