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 MicrosoftSQL 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.
Vedere anche