Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makale, Sorgu Veri Deposu özelliğini kullanan bir veritabanındaki saklı yordam düzenli aralıklarla başarısız olduğundan oluşan bir sorunu geçici olarak çözmenize yardımcı olur.
Özgün ürün sürümü: SQL Server 2016
Özgün KB numarası: 4465511
Belirtiler
Aşağıdaki senaryoyu değerlendirin:
Sorgu Veri Deposu özelliğini kullanan bir Microsoft SQL Server 2016 veritabanınız var.
Söz dizimini kullanarak
INSERT...EXEC
başka bir saklı yordama çağrı yapan bir saklı yordamınız vardır.Sorgu Veri Deposu özelliği, yapılandırılan boyut üst sınırına yükseldikçe otomatik temizlemeyi düzenli aralıklarla çalıştırır. Ayrıca, Sorgu Veri Deposu durumu olarak
READ_WRITE
READ_ONLY
değişir.
Bu senaryoda, üst saklı yordam yürütmesi düzenli aralıklarla başarısız olur ve aşağıdakine benzer bir hata iletisi alırsınız:
Msg 556, Düzey 16, State 2, Line LineNumber
Saklı yordam hedef tablonun şemasını değiştirdiğinden INSERT EXEC başarısız oldu.
Neden
Otomatik temizleme işlemi planı Sorgu Veri Deposu'nun dışına boşaltır. Sorgu Veri Deposu'nda plan eksik olduğundan sorgu yeniden derleme işlemiyle karşılaşır. Ancak, plan yordam önbelleğinde hala mevcuttur. Tasarım gereği, yeniden derleme işlemi gerçekleştiğinde SQL Server alt yordamın yinelenen yürütülmesini önlemek için 556 hatasını oluşturur. Böyle bir yinelenen işlem, yanlış sonuçların döndürülmesine neden olabilir.
Çözüm
SQL Server 2016 için Hizmet Paketi bilgileri
Bu sorun, SQL Server için aşağıdaki hizmet paketinde düzeltildi:
SQL Server 2016 için Service Pack 3
SQL Server hizmet paketleri hakkında:
Hizmet paketleri birikmelidir. Her yeni hizmet paketi, yeni düzeltmelerle birlikte önceki hizmet paketlerinde bulunan tüm düzeltmeleri içerir. Bu hizmet paketi için en son hizmet paketini ve en son toplu güncelleştirmeyi uygulamanızı öneririz. En son hizmet paketini yüklemeden önce önceki bir hizmet paketini yüklemeniz gerekmez. En son hizmet paketi ve en son toplu güncelleştirme hakkında daha fazla bilgi için aşağıdaki makaledeki Tablo 1'e bakın:
SQL Server ve bileşenlerinin sürüm, sürüm ve güncelleştirme düzeyini belirleme
Geçici çözüm
Bu soruna geçici bir çözüm bulmak için aşağıdaki adımları uygulayın:
Sorgu Veri Deposu'nun boyutunu artırın. Bu, Sorgu Veri Deposu'nun planı temizleme ve işletim moduna girme
READ_ONLY
sıklığını veya olasılığını azaltır.Hata 556'yı yakalamak için kodunuza hata işleme ekleyin ve sorguyu yeniden gönderin
INSERT EXEC
.Sorgu Veri Deposu konumundan
READ_ONLY
durumuna döndüğünde yordam önbelleğiniREAD_WRITE
temizleyin.
Ek bilgi
Microsoft SQL Server 2017'de Sorgu Veri Deposu'nda yapılan değişiklikler nedeniyle bu sorun SQL Server 2017'de oluşmaz.