Memantau penyimpanan OLTP dalam memori di Azure SQL Managed Instance
Berlaku untuk: Azure SQL Managed Instance
Dengan OLTP dalam memori, data dalam tabel yang dioptimalkan memori dan variabel tabel berada dalam penyimpanan OLTP dalam memori.
Menentukan apakah data sesuai dalam batas penyimpanan OLTP dalam memori
Tingkat layanan Business Critical mencakup sejumlah memori Max In-Memory OLTP, yang ditentukan oleh jumlah vCore.
Memperkirakan persyaratan memori untuk tabel yang dioptimalkan memori berfungsi dengan cara yang sama untuk SQL Server seperti halnya di Azure SQL Managed Instance. Luangkan waktu beberapa menit untuk meninjau Memperkirakan persyaratan memori.
Baris variabel tabel dan tabel, serta indeks, diperhitungkan dalam ukuran data pengguna maksimum. Selain itu, ALTER TABLE
perlu ruang yang cukup untuk membuat versi baru dari seluruh tabel dan indeksnya.
Setelah batas ini terlampaui, operasi sisipkan dan perbarui mungkin mulai gagal dengan kesalahan 41823.
Memperbaiki situasi penyimpanan OLTP kehabisan memori - kesalahan 41823
Memenuhi batas penyimpanan OLTP dalam memori dalam database Anda menghasilkan operasi INSERT, UPDATE, ALTER, dan CREATE yang gagal dengan kesalahan 41823. Kesalahan ini dapat menyebabkan transaksi aktif dibatalkan.
Kesalahan 41823 menunjukkan bahwa tabel dan variabel tabel yang dioptimalkan memori dalam instans mencapai ukuran penyimpanan OLTP dalam memori maksimum.
Untuk mengatasi masalah ini:
- Hapus data dari tabel yang dioptimalkan memori, berpotensi membongkar data ke tabel tradisional berbasis disk; Atau,
- Tingkatkan jumlah vCore tambahkan penyimpanan dalam memori untuk data yang perlu Anda simpan dalam tabel yang dioptimalkan memori.
Catatan
Dalam kasus yang jarang terjadi, kesalahan 41823 dapat bersifat sementara, yang berarti ada cukup penyimpanan OLTP dalam memori, dan mencoba kembali operasi berhasil. Oleh karena itu, kami menyarankan untuk memantau keseluruhan penyimpanan OLTP dalam memori yang tersedia dan untuk mencoba kembali ketika pertama kali mengalami kesalahan 41823. Untuk informasi selengkapnya tentang logika coba lagi, lihat Deteksi Konflik dan Logika Coba Lagi dengan OLTP dalam memori.
Memantau dengan DMV
Dengan memantau konsumsi memori secara berkala, Anda dapat menentukan bagaimana konsumsi memori tumbuh dan berapa banyak ruang kepala yang Anda tinggalkan dalam batas sumber daya. Identifikasi berapa banyak memori yang digunakan oleh objek dalam database atau instans Anda. Misalnya, DMV sys.dm_db_xtp_table_memory_stats atau sys.dm_os_memory_clerks.
Anda dapat menemukan konsumsi memori untuk semua tabel pengguna, indeks, dan objek sistem dengan mengkueri
sys.dm_db_xtp_table_memory_stats
:SELECT object_name(object_id) AS [Name], * FROM sys.dm_db_xtp_table_memory_stats;
Memori yang dialokasikan untuk mesin OLTP dalam memori dan objek yang dioptimalkan memori dikelola dengan cara yang sama seperti konsumen memori lain dalam database. Pegawai memori jenis MEMORYCLERK_XTP akun untuk semua memori yang dialokasikan untuk mesin OLTP dalam memori. Gunakan kueri berikut untuk
sys.dm_os_memory_clerks
menemukan semua memori yang digunakan oleh mesin OLTP dalam memori, termasuk memori yang didedikasikan untuk database tertentu.-- This DMV accounts for all memory used by the in-memory engine SELECT [type], [name] , memory_node_id , pages_kb/1024 AS pages_MB FROM sys.dm_os_memory_clerks WHERE [type] LIKE '%xtp%';
type name memory_node_id pages_MB -------------------- ---------- -------------- -------------------- MEMORYCLERK_XTP Default 0 18 MEMORYCLERK_XTP DB_ID_5 0 1358 MEMORYCLERK_XTP Default 64 0
Anda juga bisa mendapatkan informasi selengkapnya tentang kesalahan kehabisan memori di Azure SQL Managed Instance dengan tampilan manajemen dinamis sys.dm_os_out_of_memory_events. Contohnya:
SELECT * FROM sys.dm_os_out_of_memory_events ORDER BY event_time DESC;
Untuk informasi selengkapnya, lihat Memantau dan memecahkan masalah penggunaan memori OLTP dalam Memori.