Simptomi
Do greške u utvrđivanju može doći kada Microsoft SQL Server više puta izvrši 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šenje postupka i
-
Koristi argument velikog objekta u privremenoj tabeli.
Možda ćete pronaći grešku u tvrdnji koja je slična sledećoj u evidenciji grešaka sistema SQL Server:
Datum/vreme SPID greška: 17065, težina: 16, stanje: 1.
Date/Time SPID SQL Server Assertion: FilePath\FileName, line = LineNumber Failed Assertion = 'fFalse' Attempt to access expired blob handle (1). Ova greška je možda povezana sa vremenskim rasporedom. Ako greška potraje i nakon ponovnog pokretanja izjave, koristite DBCC CHECKDB da biste proverili da li u bazi podataka postoji strukturni integritet ili ponovo pokrenite server da biste se uverili da strukture podataka u memoriji nisu oštećene.
Datum/vreme SPID greška: 3624, težina: 20, stanje: 1.
Provera datuma/vremena SPID sistemske provere nije uspela. Za detalje proverite da li postoje detalji evidencije grešaka na SQL Serveru. Do greške u tvrdnji obično dolazi zbog softverske greške ili oštećenja podataka. Da biste proverili da li ima oštećenja baze podataka, razmislite o pokretanju DBCC CHECKDB. Ako ste pristali da šaljete deponije korporaciji Microsoft tokom instalacije, mini deponija će biti poslata korporaciji Microsoft. Ispravka može biti dostupna od korporacije Microsoft u najnovijem servisnom paketu ili u hitnoj ispravki tehničke podrške.
Uzrok
SQL Server ima internu logiku da onemogući keširanje upita koji upućuju na velike objekte tako da naknadna izvršavanja ne upućuju na one LB-ove (koji su kreirani tokom prethodnog izvršavanja i zato su nevažeći za naredna izvršavanja). Ta logika nije rešavala slučaj odloženog rešenja imena (DNR) u privremenim tabelama koje su prouzrokovale keširanje tih planova. Opsežne privremene tabele su skupe za kreiranje, a SQL Server ih keši za ponovnu analizu u narednim izvršavama. Ovo sprečava ponovno dovršavanje takvih upita zbog promena šeme.
Saznajte više o odloženoj rezoluciji 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
Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i bezbednosne ispravke koje su bile u prethodnoj verziji. 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 opisivanje softverskih ispravki.