KB3196102 - DÜZELTME: SQL Server 2016 Analysis Services'de belleğin sürekli büyümesinden kaynaklanan performans sorunları

Uygulandığı Öğe
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

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.