Udostępnij za pomocą


sys.dm_os_memory_objects (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Database w Microsoft Fabric

Zwraca obiekty pamięci aktualnie przydzielone przez SQL Server. Możesz sys.dm_os_memory_objects wykorzystać do analizy zużycia pamięci i identyfikacji możliwych wycieków pamięci.

Uwaga / Notatka

Aby wywołać to z Azure Synapse Analytics lub Analytics Platform System (PDW), użyj nazwy sys.dm_pdw_nodes_os_memory_objects. Ta składnia nie jest obsługiwana przez bezserwerową pulę SQL w usłudze Azure Synapse Analytics.

Nazwa kolumny Typ danych Description
memory_object_address varbinary(8) Adres obiektu pamięci. Nie jest nullowalny.
parent_address varbinary(8) Adres obiektu pamięci nadrzędnej. Jest dopuszczana wartość null.
pages_allocated_count int Dotyczy: SQL Server 2008 (10.0.x) do programu SQL Server 2008 R2 (10.50.x).

Liczba stron przydzielonych przez ten obiekt. Nie jest nullowalny.
pages_in_bytes bigint Dotyczy: SQL Server 2012 (11.x) i nowsze.

Ilość pamięci w bajtach przydzielana przez tę instancję obiektu pamięci. Nie jest nullowalny.
creation_options int Tylko do użytku wewnętrznego. Jest dopuszczana wartość null.
bytes_used bigint Tylko do użytku wewnętrznego. Jest dopuszczana wartość null.
type nvarchar(60) Typ obiektu pamięci.

Wskazuje to na jakiś komponent, do którego należy obiekt pamięci, lub funkcję obiektu pamięci. Jest dopuszczana wartość null.
name varchar(128) Tylko do użytku wewnętrznego. Nullable.
memory_node_id smallint ID węzła pamięci używanego przez ten obiekt pamięci. Nie jest nullowalny.
creation_time datetime Tylko do użytku wewnętrznego. Jest dopuszczana wartość null.
max_pages_allocated_count int Dotyczy: SQL Server 2008 (10.0.x) do programu SQL Server 2008 R2 (10.50.x).

Maksymalna liczba stron przydzielonych przez ten obiekt pamięci. Nie jest nullowalny.
page_size_in_bytes int Dotyczy: SQL Server 2012 (11.x) i nowsze.

Rozmiar stron w bajtach przydzielonych przez ten obiekt. Nie jest nullowalny.
max_pages_in_bytes bigint Maksymalna ilość pamięci kiedykolwiek używanej przez ten obiekt pamięci. Nie jest nullowalny.
page_allocator_address varbinary(8) Adres pamięci alokatora strony. Nie jest nullowalny. Więcej informacji można znaleźć w sys.dm_os_memory_clerks (Transact-SQL).
creation_stack_address varbinary(8) Tylko do użytku wewnętrznego. Jest dopuszczana wartość null.
sequence_num int Tylko do użytku wewnętrznego. Jest dopuszczana wartość null.
partition_type int Dotyczy: SQL Server 2016 (13.x) i nowszych.

Rodzaj partycji:

0 - Obiekt pamięci niepartycjonowalnej

1 - Obiekt pamięci partycjonowalnej, obecnie niepartycjonowany

2 - Obiekt pamięci partycjonowalnej, partycjonowany przez węzeł NUMA. W środowisku z jednym węzłem NUMA jest to równoważne 1.

3 - Obiekt pamięci partycjonowalnej, partycjonowany przez CPU.
contention_factor prawdziwy Dotyczy: SQL Server 2016 (13.x) i nowszych.

Wartość określająca sporność na tym obiekcie pamięci, gdzie 0 oznacza brak sporu. Wartość ta jest aktualizowana za każdym razem, gdy określona liczba alokacji pamięci została wykonana w tym okresie, odzwierciedlając spory. Dotyczy tylko obiektów pamięci bezpiecznych dla wątków.
waiting_tasks_count bigint Dotyczy: SQL Server 2016 (13.x) i nowszych.

Liczba oczekiwaniów na ten obiekt pamięci. Licznik ten jest zwiększany za każdym razem, gdy pamięć jest przydzielana z tego obiektu pamięci. Przyrost to liczba zadań oczekujących obecnie na dostęp do tego obiektu pamięci. Dotyczy tylko obiektów pamięci bezpiecznych dla wątków. To wartość najlepszego wysiłku bez gwarancji poprawności.
exclusive_access_count bigint Dotyczy: SQL Server 2016 (13.x) i nowszych.

Określa, jak często ten obiekt pamięci był używany wyłącznie w ten sposób. Dotyczy tylko obiektów pamięci bezpiecznych dla wątków. To wartość najlepszego wysiłku bez gwarancji poprawności.
pdw_node_id int Dotyczy do: Azure Synapse Analytics, Analytics Platform System (PDW)

Identyfikator węzła, w ramach którego znajduje się ta dystrybucja.

partition_type, contention_factor, waiting_tasks_count i exclusive_access_count nie zostały jeszcze zaimplementowane w SQL Database.

Permissions

W programie SQL Server i usłudze SQL Managed Instance wymagane jest VIEW SERVER STATE uprawnienie.

W przypadku celów usługi SQL Database Basic, S0 i S1 oraz baz danych w elastycznych pulach wymagane jest konto administratora serwera , konto administratora firmy Microsoft Entra lub członkostwo w ##MS_ServerStateReader##roli serwera . We wszystkich innych celach usługi SQL Database wymagane VIEW DATABASE STATE jest uprawnienie do bazy danych lub członkostwo w ##MS_ServerStateReader## roli serwera.

Uprawnienia dla programu SQL Server 2022 i nowszych

Wymaga uprawnienia WYŚWIETL STAN WYDAJNOŚCI SERWERA na serwerze.

Uwagi

Obiekty pamięci to kupy. Zapewniają alokacje o bardziej szczegółowej szczegółowości niż te dostarczane przez pracowników pamięci. Komponenty SQL Server używają obiektów pamięci zamiast pamięci clerks. Obiekty pamięci wykorzystują interfejs alokatora stron w pamięci do alokacji stron. Obiekty pamięci nie korzystają z wirtualnych ani współdzielonych interfejsów pamięci. W zależności od wzorców alokacji, komponenty mogą tworzyć różne typy obiektów pamięci do alokacji regionów o dowolnym rozmiarze.

Typowy rozmiar strony obiektu pamięci wynosi 8 KB. Jednak obiekty pamięci przyrostowej mogą mieć rozmiary stron od 512 bajtów do 8 KB.

Uwaga / Notatka

Rozmiar strony nie jest maksymalną alokacją. Zamiast tego rozmiar strony to szczegółowość alokacji obsługiwana przez alokator stron i realizowana przez sekretarza pamięci. Możesz żądać alokacji większej niż 8 KB od obiektów pamięci.

Przykłady

Poniższy przykład zwraca ilość pamięci przydzielonej przez każdy typ obiektu pamięci.

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

Zobacz także

Dynamiczne widoki zarządzania związane z systemem operacyjnym PROGRAMU SQL Server (Transact-SQL)
sys.dm_os_memory_clerks (Transact-SQL)