Üretim ortamımızda bu sorun var.
Windows NT 6.1 üzerinde Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) - Enterprise Edition (64 bit) (Derleme 7601: Service Pack 1).
SQL Server, eski yürütme planlarının tümünü (neredeyse% 100'ü) bırakıyor ve her gün (11: 00-8: 00 arası) her gün yeniden yaratıyor. Bu, 'otomatik güncelleme istatistikleri' devre dışı durumdayken bile oluyordu. Son 2-3 hafta boyunca 'otomatik güncelleme istatistikleri'ni açtık. Ama hala oluyor.
Bu yeniden oluşturma planlarını neyin tetiklediğini gerçekten bilmiyoruz, ancak manuel olarak yapmadığımızdan eminiz.
Rejenere edilen planların zamanlamasına gerçekten denk gelen tek şey, sahip olduğumuz bir DB bakım işidir: günlük indeks yeniden yapılanıyor (parçalanma% 5-30 olduğunda) ve günlük indeks yeniden inşası (parçalanma% 30'dan fazla olduğunda) ) iş. Genellikle bu günlük bakım işi sadece yeniden düzenlenir (endeks parçalanması asla günlük bazda% 30'dan fazla olmadığından).
Etki:
Bu yeni oluşturulan planlar bazı UDF çağrıları / sorgu çağrılarının (UI / web sayfalarından çağrılır) daha uzun sürmesini (1 saniyeden daha az dakikalar) sürmesini sağlar ve böylece oturumlar CPU'yu% 90'a yaklaştırarak birikir .
UDF'ler değiştirildiğinde (işlevler için) ilgili tüm yürütme planları manuel olarak (sorgular için) veya 2) temizlendiğinde, sıkışmış oturumlar (DB tarafında) zorla silindiğinde sorun ortadan kalkar. O andan itibaren SQL sunucusu tarafından oluşturulan yeni planlar, ertesi sabah aynı sorunu yaşayana kadar gün boyunca mükemmel çalışır. Ayrıca, bu davranış% 100 tutarlı değil, her sabah gerçekten görmüyoruz. Ancak arka arkaya 4-5 gün boyunca sürekli olarak gördüğümüz zamanlar oldu.
Sorun iş sabahlarında olur, o zaman UI / web sayfalarına daha yoğun erişilir, öyle görünüyor.
Buna neden olan ve bu sorunu nasıl çözecekleri hakkında bir fikri olan var mı? Herhangi bir yardım çok takdir edilecektir.