Condividi tramite


sys.dm_os_memory_clerks (Transact-SQL)

Restituisce il set di tutti i clerk di memoria attivi nell'istanza di SQL Server.

Nome colonna

Tipo di dati

Descrizione

memory_clerk_address

varbinary(8)

Indirizzo di memoria univoco del clerk di memoria. Si tratta della colonna chiave primaria. Non ammette valori Null.

type

nvarchar(60)

Tipo di clerk di memoria. Ogni clerk è associato a un tipo specifico, ad esempio i clerk CLR MEMORYCLERK_SQLCLR. Non ammette valori Null.

name

nvarchar(256)

Nome assegnato internamente del clerk di memoria. Ogni componente può disporre di più clerk di memoria di un tipo specifico. Un componente può scegliere di utilizzare nomi specifici per identificare i clerk di memoria dello stesso tipo. Non ammette valori Null.

memory_node_id

smallint

ID del nodo di memoria. Non ammette valori Null.

single_pages_kb

bigint

Quantità, in kilobyte, della memoria a pagina singola allocata. Si tratta della quantità di memoria allocata tramite l'utilizzo dell'allocatore di pagine singole di un nodo di memoria. L'allocatore di pagine singole preleva le pagine direttamente dal pool di buffer. Non ammette valori Null.

multi_pages_kb

bigint

Quantità di memoria di pagine multiple allocata, espressa in KB. Si tratta della quantità di memoria allocata tramite l'utilizzo dell'allocatore di pagine multiple dei nodi di memoria. La memoria viene allocata esternamente al pool di buffer e sfrutta l'allocatore virtuale dei nodi di memoria. Non ammette valori Null.

virtual_memory_reserved_kb

bigint

Quantità di memoria virtuale riservata da un clerk di memoria. Si tratta della quantità di memoria riservata direttamente dal componente che utilizza il clerk. Nella maggior parte delle situazioni solo il pool di buffer riserva spazio degli indirizzi virtuali tramite l'utilizzo del relativo clerk di memoria. Non ammette valori Null.

virtual_memory_committed_kb

bigint

Quantità di memoria virtuale di cui un clerk di memoria ha eseguito il commit. Si tratta della quantità di memoria di cui il clerk ha eseguito il commit. La quantità di memoria di cui è stato eseguito il commit deve sempre essere minore della quantità di memoria riservata. Non ammette valori Null.

awe_allocated_kb

bigint

Quantità di memoria allocata dal clerk di memoria tramite le estensioni AWE (Address Windowing Extensions). In SQL Server solo i clerk del pool di buffer (MEMORYCLERK_SQLBUFFERPOOL) utilizzano questo meccanismo ed esclusivamente quando l'opzione AWE è attivata. Non ammette valori Null.

shared_memory_reserved_kb

bigint

Quantità di memoria condivisa riservata da un clerk di memoria. ovvero quantità di memoria riservata per l'utilizzo da parte della memoria condivisa e del mapping di file. Non ammette valori Null.

shared_memory_committed_kb

bigint

Quantità di memoria condivisa di cui il clerk di memoria ha eseguito il commit. Non ammette valori Null.

page_size_bytes

bigint

Dimensione della pagina che può essere allocata da un clerk di memoria. È supportata solo una dimensione, ovvero 8.192 byte. Non ammette valori Null.

page_allocator_address

varbinary(8)

Indirizzo dell'allocatore di pagine. Questo indirizzo è univoco per un clerk di memoria e può essere utilizzato in sys.dm_os_memory_objects per individuare gli oggetti memoria associati al clerk specifico. Non ammette valori Null.

host_address

varbinary(8)

Indirizzo di memoria dell'host per il clerk di memoria. Per ulteriori informazioni, vedere sys.dm_os_hosts (Transact-SQL). I componenti quali Microsoft SQL Server Native Client accedono alle risorse di memoria di SQL Server tramite l'interfaccia host.

0x00000000 = Il clerk di memoria appartiene a SQL Server.

Non ammette valori Null.

Autorizzazioni

È richiesta l'autorizzazione VIEW SERVER STATE nel server.

Osservazioni

Il gestore della memoria di SQL Server è strutturato in una gerarchia a tre livelli. I nodi di memoria occupano la parte inferiore della gerarchia. Il livello successivo è occupato da clerk di memoria, cache in memoria e pool di memoria. L'ultimo livello è costituito dagli oggetti memoria. Questi oggetti vengono in genere utilizzati per allocare memoria in un'istanza di SQL Server.

I nodi di memoria rendono disponibili l'interfaccia e l'implementazione per gli allocatori di livello inferiore. All'interno di SQL Server, solo i clerk di memoria hanno accesso ai nodi di memoria. I clerk di memoria accedono alle interfacce dei nodi di memoria per allocare memoria. I nodi di memoria tengono inoltre traccia della memoria allocata tramite l'utilizzo del clerk per la diagnostica. Ogni componente che alloca una quantità significativa di memoria deve creare un proprio clerk di memoria e allocare tutta la relativa memoria tramite l'utilizzo delle interfacce del clerk. I componenti creano i clerk corrispondenti all'avvio di SQL Server.