KB2926712 - DÜZELTME: ALTER INDEX sonrası performans düşüyor... ONLINE işlemi SQL ServerSQL Server 2012 veya SQL ServerSQL Server 2014'te durduruldu

Uygulandığı Öğe
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2012 Express SQL Server 2012 Web SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Belirtiler

Aşağıdaki senaryoyu ele alalım:

  • Bir ALTER INDEX çalıştırıyorsunuz ... Microsoft'taki ONLINE sorgusu SQL ServerSQL Server 2012 veya SQL ServerSQL Server 2014.
  • Bu sorgu bir kilitlenme veya kill komutu çalıştırma ya da sorguyu iptal etme gibi kullanıcı tarafından başlatılan bir eylem nedeniyle durdurulur.

Bu senaryoda, dizin meta verilerini kullanması gereken tüm DML işlemleri engellenir veya tamamlanması uzun sürer.

Ayrıca, aşağıdaki belirtilerle karşılaşabilirsiniz:

  • sys.dm_os_wait_stats ve sys.dm_exec_requests dinamik yönetim görünümlerini (DMV) sorguladığınızda PWAIT_MD_RELATION_CACHE veya MD_LAZYCACHE_RWLOCK bekleme türü için yükseltilmiş değerler
  • sys.dm_os_spinlock_stats DMV'yi sorgularken SOS_RW bekleme türü için yükseltilmiş değerler

Bu sorun genellikle her yeni DML sorgusu eşitleme nesnelerini yavaşça temizlediğinde oluşan bir kilit konvoyu olarak gözlemlenir. Eşitleme nesnelerinin bekleme yapısı nedeniyle, CPU kullanımı genellikle sınırlıdır.

Çözüm

Toplu güncelleştirme bilgileri

Sorun ilk olarak aşağıdaki toplu SQL Server güncelleştirmesinde düzeltilmiştir.

SQL Server 2014 için Toplu Güncelleştirme 1 /en-us/help/2931693

SQL Server 2012 SP1 için Toplu Güncelleştirme 9 /en-us/help/2931078

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:

      

Düzeltme bilgileri
 Microsoft, desteklenen bir düzeltmedir. Ancak, bu düzeltme yalnızca bu makalede açıklanan sorunu düzeltmeye yöneliktir. Bu düzeltmeyi yalnızca bu sorunun yaşandığı sistemlere uygulayın.

Düzeltme indirilebilir durumdaysa, bu Bilgi Bankası makalesinin en üstünde "Düzeltme İndirme Kullanılabilir" bölümü bulunmaktadır. Bu bölüm görünmüyorsa, düzeltmeyi edinmek için Microsoft Müşteri Hizmetleri ve Desteği'ne bir istek gönderin.

Not Başka sorunlar oluşursa veya sorun giderme gerekirse ayrı bir hizmet isteği oluşturmanız gerekebilir. Genel destek maliyetleri, ek destek soruları ve bu özel düzeltme için uygun olmayan sorunlara uygulanır. Microsoft Müşteri Hizmetleri ve Desteği telefon numaralarının tam listesi veya ayrı bir hizmet isteği oluşturmak için aşağıdaki Microsoft web sitesini ziyaret edin:

http://support.microsoft.com/contactus/?ws=support Not "Düzeltme İndirme Kullanılabilir" formu, düzeltmenin kullanılabildiği dilleri görüntüler. Dilinizi göremiyorsanız, bunun nedeni o dil için bir düzeltme olmamasıdır.

Önemli Bu düzeltmeyi uyguladıktan sonra, ALTER INDEX ... ONLINE sorgusu, SQL ServerSQL Server'ın performansını düşürmeden durdurulabilir.

Geçici çözüm

Bu soruna geçici bir çözüm olarak, sorgu performansını düşüren kilit konvoyunu ve olası yeniden derleme döngülerini önlemek için meta veri girişini temizleyebilirsiniz. Bunu yapmak için, meta veri girdisini temizlemeye yardımcı olması için aşağıdaki yöntemlerden birini kullanın:

  • SQL Server 2012 veya SQL Server 2014 örneğini yeniden başlatın.
  • Sorunlu veritabanını çevrimdışı duruma getirin ve sonra yeniden çevrimiçi duruma getirin.

Durum

Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.