sys.dm_os_memory_objects (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)databáze SQL v Microsoft Fabric

Vrací paměťové objekty, které jsou aktuálně alokovány SQL Serverem. Můžete sys.dm_os_memory_objects použít k analýze využití paměti a k identifikaci možných úniků paměti.

Note

Pro označení z Azure Synapse Analytics nebo Analytics Platform System (PDW) použijte název sys.dm_pdw_nodes_os_memory_objects. Tato syntaxe není podporována bezserverovým fondem SQL ve službě Azure Synapse Analytics.

Název sloupce Datový typ Description
memory_object_address varbinary(8) Adresa paměťového objektu. Není možné nastavit jako null.
parent_address varbinary(8) Adresa objektu rodičovské paměťi. Může obsahovat hodnotu null.
pages_allocated_count int Platí pro: SQL Server 2008 (10.0.x) až SQL Server 2008 R2 (10.50.x).

Počet stránek přidělených tímto objektem. Není možné nastavit jako null.
pages_in_bytes bigint platí pro: SQL Server 2012 (11.x) a novější.

Množství paměti v bajtech, které je alokováno touto instancí paměťového objektu. Není možné nastavit jako null.
creation_options int Pouze interní použití. Může obsahovat hodnotu null.
bytes_used bigint Pouze interní použití. Může obsahovat hodnotu null.
typ nvarchar(60) Typ paměťového objektu.

To označuje nějakou komponentu, ke které tento paměťový objekt patří, nebo funkci tohoto paměťového objektu. Může obsahovat hodnotu null.
name varchar(128) Pouze interní použití. Nullovatelné
memory_node_id smallint ID paměťového uzlu, který tento paměťový objekt používá. Není možné nastavit jako null.
creation_time datetime Pouze interní použití. Může obsahovat hodnotu null.
max_pages_allocated_count int Platí pro: SQL Server 2008 (10.0.x) až SQL Server 2008 R2 (10.50.x).

Maximální počet stránek přidělených tímto paměťovým objektem. Není možné nastavit jako null.
page_size_in_bytes int platí pro: SQL Server 2012 (11.x) a novější.

Velikost stránek v bajtech přidělených tímto objektem. Není možné nastavit jako null.
max_pages_in_bytes bigint Maximální množství paměti, které kdy tento paměťový objekt využil. Není možné nastavit jako null.
page_allocator_address varbinary(8) Paměťová adresa alokátoru stránky. Není možné nastavit jako null. Pro více informací viz sys.dm_os_memory_clerks (Transact-SQL).
creation_stack_address varbinary(8) Pouze interní použití. Může obsahovat hodnotu null.
sequence_num int Pouze interní použití. Může obsahovat hodnotu null.
partition_type int platí pro: SQL Server 2016 (13.x) a novější.

Typ partition:

0 - Objekt nepartitionovatelné paměti

1 - Objekt paměti s partitionovatelnou částí, momentálně není rozdělen na particování

2 - Objekt paměti s partitionořitelnou částí, rozdělený uzlem NUMA. V prostředí s jedním uzlem NUMA je to ekvivalentní 1.

3 - Objekt paměti s rozdělováním, rozdělený CPU.
contention_factor real platí pro: SQL Server 2016 (13.x) a novější.

Hodnota určující spor na tomto paměťovém objektu, kde 0 znamená žádný spor. Hodnota se aktualizuje vždy, když byl proveden určitý počet alokací paměti, což odráží spory během tohoto období. Platí pouze pro objekty paměti bezpečné pro vlákna.
waiting_tasks_count bigint platí pro: SQL Server 2016 (13.x) a novější.

Počet čekání na tento paměťový objekt. Tento čítač se zvyšuje pokaždé, když je paměť alokována z tohoto paměťového objektu. Přírůstek je počet úkolů, které momentálně čekají na přístup k tomuto paměťovému objektu. Platí pouze pro objekty paměti bezpečné pro vlákna. To je hodnota nejlepšího úsilí bez záruky správnosti.
exclusive_access_count bigint platí pro: SQL Server 2016 (13.x) a novější.

Specifikuje, jak často byl tento paměťový objekt výhradně přístupný. Platí pouze pro objekty paměti bezpečné pro vlákna. To je hodnota nejlepšího úsilí bez záruky správnosti.
pdw_node_id int platí pro: Azure Synapse Analytics, Analytics Platform System (PDW)

Identifikátor uzlu, na který je tato distribuce zapnutá.

partition_type, contention_factor, waiting_tasks_count a exclusive_access_count zatím nejsou implementovány v SQL Database.

Povolení

Na SQL Serveru a spravované instanci SQL vyžaduje VIEW SERVER STATE oprávnění.

U služby SQL Database Basic, S0a S1 a pro databáze v elastických fondech, účet správce serveru serveru, účet správce Microsoft Entra nebo členství v roli ##MS_ServerStateReader##serveru. U všech ostatních cílů služby SQL Database se vyžaduje buď oprávnění VIEW DATABASE STATE k databázi, nebo členství v roli serveru ##MS_ServerStateReader##.

Oprávnění pro SQL Server 2022 a novější

Vyžaduje VIEW oprávnění SERVER PERFORMANCE STATE na serveru.

Poznámky

Paměťové objekty jsou hromady. Poskytují alokace s jemnější granularitou než ty, které poskytují paměťoví úředníci. Komponenty SQL Serveru používají paměťové objekty místo paměťových clerků. Paměťové objekty používají rozhraní alokátoru stránek paměťového clerku k alokaci stránek. Paměťové objekty nepoužívají virtuální ani sdílená paměťová rozhraní. V závislosti na vzorech alokace mohou komponenty vytvářet různé typy paměťových objektů pro alokaci oblastí libovolné velikosti.

Typická velikost stránky paměťového objektu je 8 KB. Nicméně objekty s inkrementální pamětí mohou mít velikost stránek od 512 bajtů do 8 KB.

Note

Velikost stránky není maximální přidělení. Místo toho je velikost stránky granularita alokace, kterou podporuje alokátor stránek a kterou implementuje paměťový úředník. Můžete žádat o alokace větší než 8 KB z paměťových objektů.

Examples

Následující příklad vrací množství paměti přidělené každému typu paměťového objektu.

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

Viz také

Zobrazení dynamické správy související s operačním systémem SQL Server (Transact-SQL)
sys.dm_os_memory_clerks (Transact-SQL)