Simptomi
Može doći do greške u tvrdnji kada Microsoft SQL Server više puta izvršava uskladištenu proceduru koja izvršava sledeće:
- Uzima veliki objekat, kao što je varchar(max) ili varbinary(max), kao argument i
- Kreira privremenu tabelu koja je ograničena na izvršavanje procedure i
- Koristi argument velikog objekta u privremenoj tabeli.
Možete da pronađete grešku u tvrdnji koja podseća na sledeću u evidenciji grešaka za SQL Server:
SPID datum/vreme Greška: 17065, Ozbiljnost: 16, Stanje: 1.
Datum/vreme SPID SQL Server tvrdnja: Datoteka: FilePath\FileName, line = LineNumber Failed Assertion = 'fFalse' Pokušaj pristupa isteklom regulatoru bloba (1). Ova greška je možda povezana sa vremenom. Ako se greška nastavi pojavljivati i posle ponovnog pokretanja instrukcije, koristite DBCC CHECKDB da biste proverili strukturni integritet baze podataka ili ponovo pokrenite server da biste se uverili da strukture podataka u memoriji nisu oštećene.
SPID datum/vreme Greška: 3624, Stepen značaja: 20, Stanje: 1.
SPID datum/vreme Provera sistemske tvrdnje nije uspela. Detalje potražite u evidenciji grešaka za SQL Server. Do greške pri potvrđivanju obično dolazi zbog softverske greške ili oštećenja podataka. Da biste proverili da li baza podataka nije oštećena, uzmite u obzir pokretanje DBCC CHECKDB. Ako ste pristali da šaljete prikaze korporaciji Microsoft tokom instalacije, korporaciji Microsoft se šalje mali prikaz. Microsoft može da obezbedi ispravku u najnovijem servisnom paketu ili u hitnoj ispravci tehničke podrške.
Uzrok
SQL Server ima internu logiku za onemogućavanje keširanja upita koji upućuju na velike objekte tako da naredna izvršavanja ne upućuju na one LOB (koji su kreirani tokom prethodnih pokretanja i stoga su nevažeći za naredna pokretanja). Ta logika nije rukovala slučajem odloženog razrešavanja imena (DNR) u privremenim tabelama koje su izazvale keširanje tih planova. Privremene tabele obuhvaćene opsegom su skupe za kreiranje, a SQL Server ih kešira za ponovnu upotrebu u narednim izvršavanjima. Ovo sprečava ponovno kompajliranje takvih upita zbog promena šeme.
Saznajte više o odloženom razrešavanju imena.
Rešenje
Ovaj problem je rešen u sledećim kumulativnim ispravkama za SQL Server:
Kumulativna ispravka 8 za SQL Server 2016 SP1
Kumulativna ispravka 4 za SQL Server 2017
Kumulativna ispravka 10 za SQL Server 2014 servisni paket 2
Osnovni podaci o kumulativnim ispravkama za SQL Server
Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne i bezbednosne ispravke koje su bile u prethodnoj reviziji. Pogledajte najnoviju kumulativnu ispravku za SQL Server:
Najnovija kumulativna ispravka za SQL Server 2016
Najnovija kumulativna ispravka za SQL Server 2017
Najnovije kumulativne ispravke za SQL Server 2014
Status
Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku „Odnosi se na“.
Reference
Saznajte više o terminologiji koju Microsoft koristi za opis softverskih ispravki.