sys.dm_os_out_of_memory_events

Berlaku untuk:Azure SQL DatabaseAzure SQL Managed Instance

Mengembalikan peristiwa log of out of memory (OOM).

Untuk informasi selengkapnya tentang kondisi kehabisan memori di Azure SQL Database, lihat Memecahkan masalah kesalahan kehabisan memori di Azure SQL Database.

Nama kolom Jenis Data Deskripsi
event_time datetime2, bukan null Waktu kejadian OOM
oom_cause tinyint, bukan null Nilai numerik yang menunjukkan akar penyebab OOM. Penyebab OOM ditentukan oleh algoritma heuristik dan disediakan dengan tingkat keyakinan yang terbatas.
oom_cause_desc nvarchar(60), bukan null oom_causeDeskripsi , salah satu dari:
0. TIDAK DIKETAHUI - Penyebab OOM tidak dapat ditentukan
1. HEKATON_POOL_MEMORY_LOW - Memori yang tidak mencukupi di kumpulan sumber daya yang digunakan untuk OLTP Dalam Memori. Untuk informasi selengkapnya, lihat Memantau OLTP Dalam Memori.
2. MEMORY_LOW - Memori tidak cukup tersedia untuk proses mesin database
3. OS_MEMORY_PRESSURE - OOM karena tekanan memori eksternal dari sistem operasi
4. OS_MEMORY_PRESSURE_SQL - OOM karena tekanan memori eksternal dari instans mesin database lainnya
5. NON_SOS_MEMORY_LEAK - OOM karena kebocoran memori non-SOS, misalnya, modul yang dimuat
6. SERVERLESS_MEMORY_RECLAMATION - OOM yang terkait dengan reklamasi memori dalam database tanpa server
7. MEMORY_LEAK - OOM karena kebocoran memori SOS
8. SLOW_BUFFER_POOL_SHRINK - OOM karena kumpulan buffer tidak melepaskan memori dengan cukup cepat di bawah tekanan memori
9. INTERNAL_POOL - Memori tidak mencukupi di kumpulan sumber daya internal
10. SYSTEM_POOL - Memori yang tidak mencukupi dalam kumpulan sumber daya sistem
11. QUERY_MEMORY_GRANTS - OOM karena pemberian memori besar yang dipegang oleh kueri
12. REPLICAS_AND_AVAILABILITY - OOM karena beban kerja di kumpulan sumber daya SloSecSharedPool
available_physical_memory_mb int, bukan null Memori fisik yang tersedia, dalam megabyte
initial_job_object_memory_limit_mb int, null Batas memori objek pekerjaan pada startup mesin database, dalam megabyte. Untuk informasi selengkapnya tentang Objek Pekerjaan, lihat Tata kelola sumber daya.
current_job_object_memory_limit_mb int, null Batas memori objek pekerjaan saat ini, dalam megabyte
process_memory_usage_mb int, bukan null Total penggunaan memori proses dalam megabyte oleh instans
non_sos_memory_usage_mb int, bukan null Penggunaan non-SOS dalam megabyte, termasuk utas yang dibuat SOS, utas yang dibuat oleh komponen non-SOS, DLL yang dimuat, dll.
committed_memory_target_mb int, bukan null Memori target SOS dalam megabyte
committed_memory_mb int, bukan null Memori berkomitmen SOS dalam megabyte
allocation_potential_memory_mb int, bukan null Memori tersedia untuk instans mesin database untuk alokasi baru, dalam megabyte
oom_factor tinyint, bukan null Nilai yang menyediakan informasi tambahan yang terkait dengan peristiwa OOM, hanya untuk penggunaan internal
oom_factor_desc nvarchar(60), bukan null oom_factorDeskripsi . Hanya untuk penggunaan internal. Salah satu:
0 - TIDAK DITENTUKAN
1 - ALLOCATION_POTENTIAL
2 - BLOCK_ALLOCATOR
3 - ESCAPE_TIMEOUT
4 - FAIL_FAST
5 - MEMORY_POOL
6 - EMERGENCY_ALLOCATOR
7 - VIRTUAL_ALLOC
8 - DISIMULASIKAN
9 - BUF_ALLOCATOR
10 - QUERY_MEM_QUEUE
11 - FRAGMEN
12 - INIT_DESCRIPTOR
13 - MEMORY_POOL_PRESSURE
14 - DESCRIPTOR_ALLOCATOR
15 - DESCRIPTOR_ALLOCATOR_ESCAPE
oom_resource_pools nvarchar(maks), null Kumpulan sumber daya yang kehabisan memori, termasuk statistik penggunaan memori untuk setiap kumpulan. Informasi ini disediakan sebagai nilai JSON.
top_memory_clerks nvarchar(maks), bukan null Petugas memori teratas berdasarkan konsumsi memori, termasuk statistik penggunaan memori untuk setiap petugas. Informasi ini disediakan sebagai nilai JSON.
top_resource_pools nvarchar(maks), bukan null Kumpulan sumber daya teratas berdasarkan konsumsi memori, termasuk statistik penggunaan memori untuk setiap kumpulan sumber daya. Informasi ini disediakan sebagai nilai JSON.
possible_leaked_memory_clerks nvarchar(maks), null Pegawai memori yang telah membocorkan memori. Berdasarkan heuristik dan diberikan tingkat keyakinan yang terbatas. Informasi ini disediakan sebagai nilai JSON.
possible_non_sos_leaked_memory_mb int, null Memori non-SOS bocor dalam megabyte, jika ada. Berdasarkan heuristik dan diberikan tingkat keyakinan yang terbatas.

Izin

Pada Azure 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.

Keterangan

Setiap baris dalam tampilan ini mewakili peristiwa kehabisan memori (OOM) yang telah terjadi di mesin database. Tidak semua peristiwa OOM mungkin ditangkap. Peristiwa OOM yang lebih lama dapat menghilang dari hasil yang ditetapkan saat peristiwa OOM yang lebih baru terjadi. Kumpulan hasil tidak dipertahankan di seluruh mulai ulang mesin database.

Saat ini, DMV ini terlihat tetapi tidak didukung di SQL Server 2022 (16.x).

peristiwa summarized_oom_snapshot diperluas

Peristiwa summarized_oom_snapshot yang diperluas adalah bagian dari sesi peristiwa yang ada system_health untuk menyederhanakan deteksi. Kejadian ini muncul ketika peristiwa kehabisan memori (OOM) terdeteksi. DMV ini selaras dengan aktivitas yang direkam dalam acara yang summarized_oom_snapshot diperluas, keduanya diperkenalkan ke Azure SQL Database pada Januari 2022. Untuk informasi selengkapnya, lihat Blog: Cara baru untuk memecahkan masalah kesalahan di luar memori di mesin database.

Contoh

Contoh berikut mengembalikan data peristiwa yang diurutkan berdasarkan waktu terbaru untuk database yang saat ini tersambung.

SELECT * FROM sys.dm_os_out_of_memory_events ORDER BY event_time DESC;