Delen via


sys.dm_os_memory_objects (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform Systeem (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.

Opmerking

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 Description
memory_object_address varbinary(8) Adres van het geheugenobject. Is niet nulbaar.
parent_address varbinary(8) Adres van het oudergeheugenobject. Is null-waarde.
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. Is null-waarde.
bytes_used bigint Alleen intern gebruik. Is null-waarde.
type nvarchar(60) Type geheugenobject.

Dit geeft aan dat er een component is waartoe dit geheugenobject behoort, of de functie van het geheugenobject. Is null-waarde.
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. Is null-waarde.
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. Is null-waarde.
sequence_num int Alleen intern gebruik. Is null-waarde.
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 echte 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 een machtiging vereist VIEW SERVER STATE .

Voor servicedoelstellingen van SQL Database Basic, S0 en S1 en voor databases in elastische pools is het serverbeheerdersaccount , het Microsoft Entra-beheerdersaccount of het lidmaatschap van de ##MS_ServerStateReader##serverrol 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 de machtiging PRESTATIESTATUS VAN DE WEERGAVESERVER 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.

Opmerking

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.

Voorbeelden

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)