KB4058565 - DÜZELTME: SQL Server 2014, 2016 ve 2017'de büyük bir nesneye başvuran bir saklı yordamı yürütürken onaylama işlemi hatası

Uygulandığı Öğe
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows SQL Server 2016 Service Pack 1 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 Server aşağıdakileri gerçekleştiren bir saklı yordamı art arda çalıştırdığında onaylama işlemi hatası oluşabilir:

  • Bağımsız değişken olarak varchar(max) veya varbinary(max) gibi büyük bir nesneyi alır ve
  • Yordamın yürütülmesi kapsamında geçici bir tablo oluşturur ve
  • Geçici tablodaki büyük nesne bağımsız değişkenini kullanır.

SQL Server hata günlüğünde aşağıdakine benzer bir onaylama hatasıyla karşılaşabilirsiniz:

Tarih/Saat SPID Hata: 17065, Önem Derecesi: 16, Durum: 1.

Tarih/Saat SPID SQL ServerSQL Server Onaylama: Dosya: FilePath\FileName, line = LineNumber Failed Assertion = 'fFalse' Süresi dolmuş blob tanıtıcısına erişme girişimi (1). Bu hata zamanlamayla ilgili olabilir. İfade yeniden çalıştırıldıktan sonra hata devam ederse, veritabanında yapısal bütünlük olup olmadığını denetlemek için DBCC CHECKDB kullanın veya bellek içi veri yapılarının bozulmadığından emin olmak için sunucuyu yeniden başlatın.

Tarih/Saat SPID Hata: 3624, Önem Derecesi: 20, Durum: 1.

Tarih/Saat SPID Sistem onaylama denetimi başarısız oldu. Ayrıntılar için SQL Server hata günlüğünü kontrol edin. Onaylama işlemi hatasına genellikle bir yazılım hatası veya veri bozulması neden olur. Veritabanı bozukluklarını denetlemek için DBCC CHECKDB aracını çalıştırmayı göz önünde bulundurun. Kurulum sırasında Microsoft'a döküm göndermeyi kabul ettiyseniz Microsoft'a mini bir döküm gönderilir. Microsoft'tan en son Hizmet Paketi veya Teknik Destek Düzeltmesi ile bir güncelleştirme edinilebilir.

Neden

SQL ServerSQL Server, büyük nesnelere başvuran sorguların önbelleğe alınmasını devre dışı bırakan dahili mantığa sahiptir, böylece sonraki yürütmeler bu LOB'lara başvurmaz (önceki çalıştırmalar sırasında oluşturulmuştur ve bu nedenle sonraki çalıştırmalar için geçersizdir). Bu mantık, bu planların önbelleğe alınmasına neden olan geçici tablolardaki Ertelenmiş Ad Çözümlemesi (DNR) durumunu işlemedi. Kapsamı belirlenmiş geçici tabloların oluşturulması pahalıdır ve SQL Server, sonraki yürütmelerde yeniden kullanılmak üzere bunları önbelleğe alır. Bu, şema değişiklikleri nedeniyle bu tür sorguların yeniden derlenmesini engeller.

Ertelenmiş Ad Çözümlemesi hakkında daha fazla bilgi edinin.

Çözüm

Bu sorun, SQL ServerSQL Server için aşağıdaki toplu güncelleştirmelerde düzeltildi:

SQL Server 2016 SP1 için toplu güncelleştirme 8

SQL Server 2017 için Toplu Güncelleştirme 4

SQL Server 2014 Service Pack 2 için Toplu Güncelleştirme 10

SQL Server toplu güncelleştirmeleri hakkında

SQL Server için her yeni toplu güncelleştirme, önceki derlemede yer alan tüm düzeltmeleri ve güvenlik düzeltmelerini içerir. SQL Server için en son toplu güncelleştirmeye göz atın:

SQL Server 2016 için en son toplu güncelleştirme

En son toplu güncelleştirme SQL ServerSQL Server 2017

En Son SQL Server 2014 Toplu Güncelleştirmeleri

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.