Belirtiler
Microsoft SQL ServerSQL Server 2016 Analysis Services'in bir örneğini kullandığınızı varsayalım. Genel kapsam kapasitesinin giderek daha fazla nesnesi önbelleğe alınırken, bu önbellekler hiçbir zaman temizlenmez. Bu, belleğin sürekli büyümesine neden olabilir ve sonunda sunucu kilitlenebilir.
Genel kapsamlar, her kullanıcının güvenlik gereksinimlerine göre önbelleğe alınır. Bu nedenle, genellikle yalnızca aşağıdaki senaryolardan biriyle karşılaştığınızda bu sorunla karşılaşırsınız:
- Modelde dinamik ifadeler (örneğin, UserName(), CustomData()) vardır. Sorunu görmek için bu zorunlu değildir, ancak yaygın bir nedendir. Dinamik ifadeler mevcut olduğunda, her benzersiz kullanıcının kendi benzersiz genel kapsamını oluşturması gerekir. Bu, oluşturulması ve önbelleğe alınması gereken genel kapsamların sayısında önemli bir artışa neden olur.
- Birçok meta verisi ve güvenliği olan karmaşık bir modeliniz var. Bu, kapsam nesnesi başına bellek maliyetini etkiler. Önbelleğe alınan genel kapsamların sayısı arttıkça, kapsam nesnesi başına bellek maliyetine bağlı olarak bellek ayak izi büyür.
- Sunucuya bağlanan çok sayıda benzersiz kullanıcınız var. Örneğin, PowerBI.com panodaki kutucukları her kullanıcı için sık sık yenileyebilir. Bu durum ortaya çıktığında, Analysis Services her benzersiz kullanıcı için birçok bağlantı ve sorgu alır ve genel kapsamların sayısı artar ve çok fazla bellek kullanır.
Not: Bu düzeltmeyi uyguladıktan sonra SQL Server sürüm 13.0.2170.0 olacaktır.
Çözüm
Toplu güncelleştirme bilgileri
Bu soruna ilişkin düzeltme, SQL ServerSQL Server için aşağıdaki toplu güncelleştirmede yer almaktadır:
SQL Server toplu güncelleştirmeleri hakkında
SQL Server için her yeni toplu güncelleştirme, önceki toplu güncelleştirmeye dahil edilen tüm düzeltmeleri ve tüm güvenlik düzeltmelerini içerir. SQL Server için en son toplu güncelleştirmelere göz atın:
SQL Server 2016 için en son toplu güncelleştirme
Geçici çözüm
Bu sorunu geçici olarak gidermek için, veritabanında uygun bir <zamanlamaya göre el ile ClearCache> XMLA komutunu çalıştırın. Bu, tüm genel kapsam önbelleklerinin temizlenmesini sağlar ve bellek tekrar azalır. Önbelleğe alınan genel kapsamı yeniden kullanamayacağınız için bu seçenek bir sonraki bağlanışınızda bazı performans maliyetlerine neden olur.
Durum
Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.
Başvurular
Microsoft'un yazılım güncelleştirmelerini tanımlamak için kullandığı terminoloji hakkında bilgi edinin.