sys.dm_os_memory_objects (SQL Bertransaksi)

Berlaku untuk:yes SQL Server (semua versi yang didukung) YesAzure SQL Database YesAzure SQL Managed Instance yesAzure Synapse Analytics Analytics yesPlatform 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 hingga SQL Server 2008 R2.

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 yang dimiliki objek memori ini, 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 hingga SQL Server 2008 R2.

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 Nyata Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru.

Nilai yang menentukan ketidakcocokan pada objek memori ini, dengan 0 berarti tidak ada pertikaian. Nilai diperbarui setiap kali jumlah alokasi memori yang ditentukan 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 Azure Active Directory, 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.

Keterangan

Objek memori adalah timbunan. Mereka menyediakan alokasi yang memiliki granularitas yang lebih halus daripada yang disediakan oleh petugas memori. SQL Server komponen menggunakan objek memori alih-alih pegawai memori. Objek memori menggunakan antarmuka alokator halaman dari petugas memori untuk mengalokasikan halaman. Objek memori tidak menggunakan antarmuka memori virtual atau bersama. Tergantung 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  

Lihat juga

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