Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics 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)