sys.dm_os_memory_objects (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-databas i Microsoft Fabric

Returnerar minnesobjekt som för närvarande allokeras av SQL Server. Du kan använda sys.dm_os_memory_objects för att analysera minnesanvändning och identifiera möjliga minnesläckor.

Anmärkning

För att kalla detta från Azure Synapse Analytics eller Analytics Platform System (PDW), använd namnet sys.dm_pdw_nodes_os_memory_objects. Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.

Kolumnnamn Datatyp Description
memory_object_address varbinary(8) Adressen till minnesobjektet. Får inte vara ogiltig.
parent_address varbinary(8) Adressen till föräldraminnesobjektet. Kan inte vara null.
pages_allocated_count int Gäller för: SQL Server 2008 (10.0.x) via SQL Server 2008 R2 (10.50.x).

Antal sidor som tilldelas av detta objekt. Får inte vara ogiltig.
pages_in_bytes bigint gäller för: SQL Server 2012 (11.x) och senare.

Mängden minne i byte som allokeras av denna instans av minnesobjektet. Får inte vara ogiltig.
creation_options int Endast intern användning. Kan inte vara null.
bytes_used bigint Endast intern användning. Kan inte vara null.
type nvarchar(60) Typ av minnesobjekt.

Detta indikerar någon komponent som detta minnesobjekt tillhör, eller funktionen hos minnesobjektet. Kan inte vara null.
name varchar(128) Endast intern användning. Nullable.
memory_node_id smallint ID för en minnesnod som används av detta minnesobjekt. Får inte vara ogiltig.
creation_time datetime Endast intern användning. Kan inte vara null.
max_pages_allocated_count int Gäller för: SQL Server 2008 (10.0.x) via SQL Server 2008 R2 (10.50.x).

Maximalt antal sidor som tilldelas av detta minnesobjekt. Får inte vara ogiltig.
page_size_in_bytes int gäller för: SQL Server 2012 (11.x) och senare.

Sidernas storlek i bytes som tilldelas av detta objekt. Får inte vara ogiltig.
max_pages_in_bytes bigint Maximal mängd minne som någonsin använts av detta minnesobjekt. Får inte vara ogiltig.
page_allocator_address varbinary(8) Minnesadress för sidallokatorn. Får inte vara ogiltig. För mer information, se sys.dm_os_memory_clerks (Transact-SQL).
creation_stack_address varbinary(8) Endast intern användning. Kan inte vara null.
sequence_num int Endast intern användning. Kan inte vara null.
partition_type int gäller för: SQL Server 2016 (13.x) och senare.

Typen av partition:

0 - Icke-partitionerbart minnesobjekt

1 - Partitionerbart minnesobjekt, för närvarande inte partitionerat

2 - Partitionerbart minnesobjekt, partitionerat av NUMA-nod. I en miljö med en enda NUMA-nod motsvarar detta 1.

3 - Partitionerbart minnesobjekt, partitionerat per CPU.
contention_factor riktiga gäller för: SQL Server 2016 (13.x) och senare.

Ett värde som specificerar konflik på detta minnesobjekt, där 0 betyder ingen tvist. Värdet uppdateras när ett angivet antal minnesallokeringar gjordes som speglar konkurrens under den perioden. Gäller endast trådsäkra minnesobjekt.
waiting_tasks_count bigint gäller för: SQL Server 2016 (13.x) och senare.

Antal väntetider på detta minnesobjekt. Denna räknare ökar varje gång minne allokeras från detta minnesobjekt. Inkrementeret är antalet uppgifter som för närvarande väntar på åtkomst till detta minnesobjekt. Gäller endast trådsäkra minnesobjekt. Detta är ett bästa försöksvärde utan någon korrekthetsgaranti.
exclusive_access_count bigint gäller för: SQL Server 2016 (13.x) och senare.

Specificerar hur ofta detta minnesobjekt har åtkommit exklusivt. Gäller endast trådsäkra minnesobjekt. Detta är ett bästa försöksvärde utan någon korrekthetsgaranti.
pdw_node_id int gäller för: Azure Synapse Analytics, Analytics Platform System (PDW)

Identifieraren för noden som den här fördelningen är på.

partition_type, contention_factor, waiting_tasks_count och exclusive_access_count är ännu inte implementerade i SQL Database.

Permissions

På SQL Server och SQL Managed Instance kräver VIEW SERVER STATE behörighet.

I SQL Database Grundläggande, S0och S1 tjänstmål och för databaser i elastiska pooler, serveradministratör konto, Microsoft Entra-administratör konto eller medlemskap i ##MS_ServerStateReader##serverrollen krävs. För alla andra SQL Database-tjänstmål krävs antingen VIEW DATABASE STATE behörighet för databasen eller medlemskap i ##MS_ServerStateReader## serverrollen.

Behörigheter för SQL Server 2022 och senare

Kräver BEHÖRIGHET FÖR VISNINGSSERVERNS PRESTANDATILLSTÅND på servern.

Anmärkningar

Minnesobjekt är högar. De tillhandahåller allokeringar med finare granularitet än de som minneshanterare tillhandahåller. SQL Server-komponenter använder minnesobjekt istället för minnesassistenter. Minnesobjekt använder sidallokeringsgränssnittet i minneshanteraren för att allokera sidor. Minnesobjekt använder inte virtuella eller delade minnesgränssnitt. Beroende på allokeringsmönster kan komponenter skapa olika typer av minnesobjekt för att fördela regioner av godtycklig storlek.

Den typiska sidstorleken för ett minnesobjekt är 8 KB. Dock kan inkrementella minnesobjekt ha sidstorlekar som varierar från 512 byte till 8 KB.

Anmärkning

Sidstorlek är inte en maximal tilldelning. Istället är sidstorlek allokeringsgranularitet som stöds av en sidallokator och som implementeras av en minnesadministratör. Du kan begära allokeringar större än 8 KB från minnesobjekt.

Examples

Följande exempel returnerar mängden minne som tilldelats av varje minnesobjekttyp.

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

Se även

SQL Server-operativsystemrelaterade dynamiska hanteringsvyer (Transact-SQL)
sys.dm_os_memory_clerks (Transact-SQL)