Sdílet prostřednictvím


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.

Poznámka:

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. Je nullable.
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í. Je nullable.
bytes_used bigint Pouze interní použití. Je nullable.
type 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. Je nullable.
název varchar(128) Pouze interní použití. Nullable.
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í. Je nullable.
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í. Je nullable.
sequence_num int Pouze interní použití. Je nullable.
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 skutečné 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 službě SQL Managed Instance vyžaduje VIEW SERVER STATE oprávnění.

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

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

Vyžaduje oprávnění ZOBRAZIT STAV VÝKONU SERVERU 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.

Poznámka:

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)