KB4058565-remediere: eroare de afirmație atunci când se execută o procedură stocată care face referire la un obiect mare în SQL Server 2014, 2016 și 2017

Simptome

O eroare de afirmație poate apărea atunci când Microsoft SQL Server execută în mod repetat o procedură stocată care efectuează următoarele:

  • Necesită un obiect mare, cum ar fi varchar (Max) sau varbinary (Max), ca argument și

  • Creează un tabel temporar care este în domeniul execuției procedurii și

  • Utilizează argumentul obiect mare în tabelul temporar.

Este posibil să găsiți eroarea de afirmație care seamănă cu următorul în Jurnalul de erori SQL Server:

Eroare dată/orăSPID : 17065, severitate: 16, stat: 1. 

Data/ora SPID SQL Server afirmație: fișier: numecale \filename, line = LineNumber nu a reușit afirmația = ' fFalse ' încercarea de a accesa handle blob expirat (1). Această eroare poate avea legătură cu sincronizarea. Dacă eroarea persistă după ce Reexecutați instrucțiunea, utilizați DBCC CHECKDB pentru a verifica baza de date pentru integritatea structurală sau reporniți serverul pentru a vă asigura că structurile de date din memorie nu sunt deteriorate.

Eroare dată/orăSPID : 3624, severitate: 20, stare: 1.

Dată/oră SPID o verificare de afirmație a sistemului nu a reușit. Verificați jurnalul de erori SQL Server pentru detalii. De obicei, o eroare de afirmație este cauzată de un defect de software sau de o deteriorare a datelor. Pentru a căuta corupția bazei de date, luați în considerare executarea DBCC CHECKDB. Dacă ați fost de acord să trimiteți gropi la Microsoft în timpul instalării, va fi trimis un mini dump către Microsoft. Este posibil ca o actualizare să fie disponibilă de la Microsoft în cel mai recent pachet Service Pack sau într-o remediere rapidă din asistența tehnică.

Cauză

SQL Server are logică internă pentru a dezactiva memorarea în cache a interogărilor care fac referire la obiecte mari, astfel încât execuțiile ulterioare să nu facă referire la acele LOBs (care au fost create în timpul execuțiilor anterioare și, prin urmare, nu sunt valide pentru execuți Această logică nu a rezolvat cazul cu rezoluția numelui amânată (resuscitare) în tabelele temporare care au provocat memorarea în cache a acestor planuri. Tabelele temporare în domeniu sunt costisitoare de creat și SQL Server le memorează pentru a le reutiliza în execuții ulterioare. Acest lucru previne Recompilarea acestor interogări din cauza modificărilor schemei.

Aflați mai multe despre rezoluția numelui amânată.

Rezolvare

Această problemă este remediată în următoarele actualizări cumulative pentru SQL Server:

       Actualizarea cumulativă 8 pentru SQL Server 2016 SP1  

       Actualizarea cumulativă 4 pentru SQL Server 2017

       Actualizarea cumulativă 10 pentru SQL Server 2014 Service Pack 2

Fiecare nouă actualizare cumulativă pentru SQL Server conține toate remedierile rapide și de securitate care au fost în compilarea anterioară. Consultați cea mai recentă actualizare cumulativă pentru SQL Server:

Cea mai recentă actualizare cumulativă pentru SQL Server 2016

Cea mai recentă actualizare cumulativă pentru SQL Server 2017

cele mai recente actualizări cumulative pentru SQL Server 2014

Stare

Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.

Referințe

Aflați despre terminologia pe care o utilizează Microsoft pentru a descrie actualizările de software.

Aveți nevoie de ajutor suplimentar?

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă la Microsoft Insider

V-a fost de ajutor această informație?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×