Azure SQL Yönetilen Örneği bellek içi OLTP depolama alanını izleme
Şunlar için geçerlidir: Azure SQL Yönetilen Örneği
Bellek içi OLTP ile bellek için iyileştirilmiş tablolardaki ve tablo değişkenlerindeki veriler bellek içi OLTP depolama alanında bulunur.
Verilerin bellek içi OLTP depolama sınırına sığıp sığmadığını belirleme
İş Açısından Kritik hizmet katmanı, sanal çekirdek sayısına göre belirlenen belirli miktarda Maksimum Bellek İçi OLTP belleği içerir.
Bellek için iyileştirilmiş bir tablo için bellek gereksinimlerini tahmin etmek, SQL Server için Azure SQL Yönetilen Örneği ile aynı şekilde çalışır. Bellek gereksinimlerini tahmin etme'yi gözden geçirmek için birkaç dakika bekleyin.
Tablo ve tablo değişken satırlarının yanı sıra dizinler, maksimum kullanıcı veri boyutuna doğru sayılır. Ayrıca, ALTER TABLE
tüm tablonun ve dizinlerinin yeni bir sürümünü oluşturmak için yeterli alan gerekir.
Bu sınır aşıldıktan sonra ekleme ve güncelleştirme işlemleri 41823 hatasıyla başarısız olabilir.
Yetersiz bellek OLTP depolama durumlarını düzeltme - hata 41823
Veritabanınızda bellek içi OLTP depolama sınırının karşılanması INSERT, UPDATE, ALTER ve CREATE işlemlerinin 41823 hatasıyla başarısız olduğu sonucuna varacak. Bu hata etkin işlemin durdurulmasına neden olabilir.
Hata 41823, örnekteki bellek için iyileştirilmiş tabloların ve tablo değişkenlerinin bellek içi OLTP depolama boyutu üst sınırına ulaştığını gösteriyor.
Bu hatayı çözmek için:
- Verileri bellek için iyileştirilmiş tablolardan silip verileri geleneksel, disk tabanlı tablolara boşaltabilirsiniz; veya
- Sanal çekirdek sayısını yükselterek bellek için iyileştirilmiş tablolarda tutmanız gereken veriler için bellek içi depolama alanı ekleyin.
Not
Nadir durumlarda, hata 41823 geçici olabilir, yani yeterli kullanılabilir bellek içi OLTP depolama alanı vardır ve işlemi yeniden deneme başarılı olur. Bu nedenle hem genel kullanılabilir bellek içi OLTP depolama alanını izlemenizi hem de 41823 hatasını ilk kez karşılaştığınızda yeniden denemenizi öneririz. Yeniden deneme mantığı hakkında daha fazla bilgi için bkz . Bellek içi OLTP ile Çakışma Algılama ve Mantığı Yeniden Deneme.
DMV’ler ile izleme
Bellek tüketimini düzenli aralıklarla izleyerek, bellek tüketiminin nasıl büyüdüğünü ve kaynak sınırlarında ne kadar boş odanız kaldığını belirleyebilirsiniz. Veritabanınızdaki veya örneğinizdeki nesneler tarafından ne kadar bellek tüketildiğini belirleyin. Örneğin, DMV'ler sys.dm_db_xtp_table_memory_stats veya sys.dm_os_memory_clerks.
sorgulayarak
sys.dm_db_xtp_table_memory_stats
tüm kullanıcı tabloları, dizinler ve sistem nesneleri için bellek tüketimini bulabilirsiniz:SELECT object_name(object_id) AS [Name], * FROM sys.dm_db_xtp_table_memory_stats;
Bellek içi OLTP altyapısına ayrılan bellek ve bellek için iyileştirilmiş nesneler, veritabanındaki diğer bellek tüketicileri gibi yönetilir. MEMORYCLERK_XTP türündeki bellek katipleri, bellek içi OLTP altyapısına ayrılan tüm belleği hesaplar. Belirli veritabanlarına ayrılmış bellek de dahil olmak üzere bellek içi OLTP altyapısı tarafından kullanılan tüm belleği bulmak için aşağıdaki sorguyu
sys.dm_os_memory_clerks
kullanın.-- 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
Ayrıca dinamik yönetim görünümü sys.dm_os_out_of_memory_events ile Azure SQL Yönetilen Örneği bellek yetersiz hataları hakkında daha fazla bilgi edinebilirsiniz. Örneğin:
SELECT * FROM sys.dm_os_out_of_memory_events ORDER BY event_time DESC;
Daha fazla bilgi için bkz . Bellek içi OLTP bellek kullanımını izleme ve sorunlarını giderme.