sys.dm_os_memory_objects (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-database in Microsoft Fabric

Geeft geheugenobjecten terug die momenteel door SQL Server worden toegewezen. Je kunt sys.dm_os_memory_objects gebruiken om geheugengebruik te analyseren en mogelijke geheugenlekken te identificeren.

Note

Om dit aan te roepen vanuit Azure Synapse Analytics of Analytics Platform System (PDW), gebruik de naam sys.dm_pdw_nodes_os_memory_objects. Deze syntaxis wordt niet ondersteund door een serverloze SQL-pool in Azure Synapse Analytics.

Kolomnaam Gegevenstype Beschrijving
memory_object_address varbinary(8) Adres van het geheugenobject. Is niet nulbaar.
parent_address varbinary(8) Adres van het oudergeheugenobject. Kan null-waarden bevatten.
pages_allocated_count int Van toepassing op: SQL Server 2008 (10.0.x) tot en met SQL Server 2008 R2 (10.50.x).

Aantal pagina's dat door dit object wordt toegewezen. Is niet nulbaar.
pages_in_bytes bigint Van toepassing op: SQL Server 2012 (11.x) en hoger.

Hoeveelheid geheugen in bytes die door deze instantie van het geheugenobject wordt toegewezen. Is niet nulbaar.
creation_options int Alleen intern gebruik. Kan null-waarden bevatten.
bytes_used bigint Alleen intern gebruik. Kan null-waarden bevatten.
type nvarchar(60) Type geheugenobject.

Dit geeft aan dat er een component is waartoe dit geheugenobject behoort, of de functie van het geheugenobject. Kan null-waarden bevatten.
name varchar(128) Alleen intern gebruik. Nullable.
memory_node_id smallint ID van een geheugenknoop die door dit geheugenobject wordt gebruikt. Is niet nulbaar.
creation_time datetime Alleen intern gebruik. Kan null-waarden bevatten.
max_pages_allocated_count int Van toepassing op: SQL Server 2008 (10.0.x) tot en met SQL Server 2008 R2 (10.50.x).

Maximaal aantal pagina's toegewezen door dit geheugenobject. Is niet nulbaar.
page_size_in_bytes int Van toepassing op: SQL Server 2012 (11.x) en hoger.

Grootte van pagina's in bytes die door dit object zijn toegewezen. Is niet nulbaar.
max_pages_in_bytes bigint Maximale hoeveelheid geheugen die ooit door dit geheugenobject is gebruikt. Is niet nulbaar.
page_allocator_address varbinary(8) Geheugenadres van de pagina-allocatie. Is niet nulbaar. Voor meer informatie, zie sys.dm_os_memory_clerks (Transact-SQL).
creation_stack_address varbinary(8) Alleen intern gebruik. Kan null-waarden bevatten.
sequence_num int Alleen intern gebruik. Kan null-waarden bevatten.
partition_type int Van toepassing op: SQL Server 2016 (13.x) en hoger.

Het type verdeling:

0 - Niet-partitioneerbaar geheugenobject

1 - Partitioneerbaar geheugenobject, momenteel niet gepartitioneerd

2 - Partitioneerbaar geheugenobject, gepartitioneerd door de NUMA-node. In een omgeving met één NUMA-knoop is dit gelijk aan 1.

3 - Partitioneerbaar geheugenobject, gepartitioneerd per CPU.
contention_factor real Van toepassing op: SQL Server 2016 (13.x) en hoger.

Een waarde die de conditie op dit geheugenobject specificeert, waarbij 0 betekent geen contentie. De waarde wordt bijgewerkt telkens wanneer een bepaald aantal geheugentoewijzingen is gemaakt dat de concurrentie in die periode weerspiegelt. Gilt alleen voor thread-veilige geheugenobjecten.
waiting_tasks_count bigint Van toepassing op: SQL Server 2016 (13.x) en hoger.

Aantal wachttijden op dit geheugenobject. Deze teller wordt verhoogd telkens wanneer geheugen wordt toegewezen vanuit dit geheugenobject. De increment is het aantal taken dat momenteel wacht op toegang tot dit geheugenobject. Gilt alleen voor thread-veilige geheugenobjecten. Dit is een best-effort waarde zonder juistheidsgarantie.
exclusive_access_count bigint Van toepassing op: SQL Server 2016 (13.x) en hoger.

Geeft aan hoe vaak dit geheugenobject exclusief werd benaderd. Gilt alleen voor thread-veilige geheugenobjecten. Dit is een best-effort waarde zonder juistheidsgarantie.
pdw_node_id int van toepassing op: Azure Synapse Analytics, Analytics Platform System (PDW)

De id voor het knooppunt waarop deze distributie zich bevindt.

partition_type, contention_factor, waiting_tasks_count en exclusive_access_count zijn nog niet geïmplementeerd in SQL Database.

Permissions

Voor SQL Server en SQL Managed Instance is VIEW SERVER STATE machtiging vereist.

Op SQL Database Basic, S0en S1 servicedoelstellingen, en voor databases in elastische pools, is het serverbeheerder--account, het Microsoft Entra-beheerdersaccount of lidmaatschap van de ##MS_ServerStateReader##-server functie vereist. Voor alle andere SQL Database-servicedoelstellingen is de VIEW DATABASE STATE machtiging voor de database of het lidmaatschap van de ##MS_ServerStateReader##-serverfunctie vereist.

Machtigingen voor SQL Server 2022 en hoger

Vereist VIEW SERVER PERFORMANCE STATE toestemming op de server.

Opmerkingen

Geheugenobjecten zijn heaps. Ze bieden allocaties met een fijnere granulariteit dan die van geheugenclerks. SQL Server-componenten gebruiken geheugenobjecten in plaats van geheugenclerks. Geheugenobjecten gebruiken de pagina-allocatieinterface van de geheugenclerk om pagina's toe te wijzen. Geheugenobjecten gebruiken geen virtuele of gedeelde geheugeninterfaces. Afhankelijk van de allocatiepatronen kunnen componenten verschillende soorten geheugenobjecten creëren om gebieden van willekeurige grootte toe te wijzen.

De typische paginagrootte voor een geheugenobject is 8 KB. Incrementele geheugenobjecten kunnen echter paginagroottes hebben die variëren van 512 bytes tot 8 KB.

Note

Paginagrootte is geen maximale toewijzing. In plaats daarvan is paginagrootte de allocatiegranulariteit die wordt ondersteund door een pagina-allocatie en geïmplementeerd door een geheugenclerk. Je kunt allocaties groter dan 8 KB aanvragen van geheugenobjecten.

Examples

Het volgende voorbeeld geeft de hoeveelheid geheugen die per geheugenobject is toegewezen, weer terug.

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

Zie ook

Dynamische beheerweergaven van SQL Server-besturingssysteem (Transact-SQL)
sys.dm_os_memory_clerks (Transact-SQL)