sys.dm_os_memory_objects (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Mengembalikan objek memori yang saat ini dialokasikan oleh SQL Server. Anda dapat menggunakan sys.dm_os_memory_objects untuk menganalisis penggunaan memori dan mengidentifikasi kemungkinan kebocoran memori.

Catatan

Untuk memanggil ini dari Azure Synapse Analytics atau Analytics Platform System (PDW), gunakan nama sys.dm_pdw_nodes_os_memory_objects. Sintaks ini tidak didukung oleh kumpulan SQL tanpa server di Azure Synapse Analytics.

Nama kolom Jenis data Deskripsi
memory_object_address varbinary(8) Alamat objek memori. Tidak dapat diubah ke null.
parent_address varbinary(8) Alamat objek memori induk. Dapat diubah ke null.
pages_allocated_count int Berlaku untuk: SQL Server 2008 (10.0.x) melalui SQL Server 2008 R2 (10.50.x).

Jumlah halaman yang dialokasikan oleh objek ini. Tidak dapat diubah ke null.
pages_in_bytes bigint Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru.

Jumlah memori dalam byte yang dialokasikan oleh instans objek memori ini. Tidak dapat diubah ke null.
creation_options int Penggunaan internal saja. Dapat diubah ke null.
bytes_used bigint Penggunaan internal saja. Dapat diubah ke null.
jenis nvarchar(60) Jenis objek memori.

Ini menunjukkan beberapa komponen tempat objek memori ini berada, atau fungsi objek memori. Dapat diubah ke null.
nama varchar(128) Penggunaan internal saja. Dapat diubah ke null.
memory_node_id smallint ID simpul memori yang sedang digunakan oleh objek memori ini. Tidak dapat diubah ke null.
creation_time datetime Penggunaan internal saja. Dapat diubah ke null.
max_pages_allocated_count int Berlaku untuk: SQL Server 2008 (10.0.x) melalui SQL Server 2008 R2 (10.50.x).

Jumlah maksimum halaman yang dialokasikan oleh objek memori ini. Tidak dapat diubah ke null.
page_size_in_bytes int Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru.

Ukuran halaman dalam byte yang dialokasikan oleh objek ini. Tidak dapat diubah ke null.
max_pages_in_bytes bigint Jumlah maksimum memori yang pernah digunakan oleh objek memori ini. Tidak dapat diubah ke null.
page_allocator_address varbinary(8) Alamat memori alokator halaman. Tidak dapat diubah ke null. Untuk informasi lebih lanjut, lihat sys.dm_os_memory_clerks (Transact-SQL).
creation_stack_address varbinary(8) Penggunaan internal saja. Dapat diubah ke null.
sequence_num int Penggunaan internal saja. Dapat diubah ke null.
partition_type int Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.

Jenis partisi:

0 - Objek memori yang tidak dapat dipartisi

1 - Objek memori yang dapat dipartisi, saat ini tidak dipartisi

2 - Objek memori yang dapat dipartisi, dipartisi oleh simpul NUMA. Dalam lingkungan dengan satu simpul NUMA, ini setara dengan 1.

3 - Objek memori yang dapat dipartisi, dipartisi oleh CPU.
contention_factor real Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.

Nilai yang menentukan ketidakcocokan pada objek memori ini, dengan 0 tidak berarti ketidakcocokan. Nilai diperbarui setiap kali sejumlah alokasi memori tertentu dibuat mencerminkan ketidakcocokan selama periode tersebut. Hanya berlaku untuk objek memori aman utas.
waiting_tasks_count bigint Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.

Jumlah tunggu pada objek memori ini. Penghitung ini dinaikkan setiap kali memori dialokasikan dari objek memori ini. Kenaikan adalah jumlah tugas yang saat ini menunggu akses ke objek memori ini. Hanya berlaku untuk objek memori aman utas. Ini adalah nilai upaya terbaik tanpa jaminan kebenaran.
exclusive_access_count bigint Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.

Menentukan seberapa sering objek memori ini diakses secara eksklusif. Hanya berlaku untuk objek memori aman utas. Ini adalah nilai upaya terbaik tanpa jaminan kebenaran.
pdw_node_id int Berlaku untuk: Azure Synapse Analytics, Analytics Platform System (PDW)

Pengidentifikasi untuk simpul tempat distribusi ini aktif.

partition_type, contention_factor, waiting_tasks_count, dan exclusive_access_count belum diimplementasikan dalam SQL Database.

Izin

Pada SQL Server dan SQL Managed Instance, memerlukan VIEW SERVER STATE izin.

Pada tujuan layanan SQL Database Basic, S0, dan S1, dan untuk database di kumpulan elastis, akun admin server, akun admin Microsoft Entra, atau keanggotaan dalam##MS_ServerStateReader## peran server diperlukan. Pada semua tujuan layanan SQL Database lainnya, izin VIEW DATABASE STATE pada database, atau keanggotaan dalam ##MS_ServerStateReader## peran server diperlukan.

Izin untuk SQL Server 2022 dan yang lebih baru

Memerlukan izin TAMPILKAN STATUS PERFORMA SERVER pada server.

Keterangan

Objek memori adalah timbunan. Mereka memberikan alokasi yang memiliki granularitas yang lebih halus daripada yang disediakan oleh petugas memori. Komponen SQL Server menggunakan objek memori alih-alih petugas memori. Objek memori menggunakan antarmuka alokator halaman dari petugas memori untuk mengalokasikan halaman. Objek memori tidak menggunakan antarmuka memori virtual atau bersama. Bergantung pada pola alokasi, komponen dapat membuat berbagai jenis objek memori untuk mengalokasikan wilayah dengan ukuran arbitrer.

Ukuran halaman umum untuk objek memori adalah 8 KB. Namun, objek memori bertambah bertahap dapat memiliki ukuran halaman yang berkisar dari 512 byte hingga 8 KB.

Catatan

Ukuran halaman bukan alokasi maksimum. Sebaliknya, ukuran halaman adalah granularitas alokasi yang didukung oleh alokator halaman dan yang diimplementasikan oleh petugas memori. Anda dapat meminta alokasi yang lebih besar dari 8 KB dari objek memori.

Contoh

Contoh berikut mengembalikan jumlah memori yang dialokasikan oleh setiap jenis objek memori.

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

Baca juga

Tampilan Manajemen Dinamis Terkait Sistem Operasi SQL Server (Transact-SQL)
sys.dm_os_memory_clerks (T-SQL)