Symptomer
Der kan opstå en assertionsfejl, når Microsoft SQL Server gentagne gange udfører en gemt procedure, der udfører følgende:
- Benytter et stort objekt, f.eks. varchar(max) eller varbinary(max), som argument, og
- Opretter en midlertidig tabel, der er fastsat til udførelsen af proceduren, og
- Bruger argumentet stort objekt i den midlertidige tabel.
Du kan finde den assertionsfejl, der ligner følgende i SQL Server-fejlloggen:
SPID for dato og klokkeslæt Fejl: 17065, Alvorsgrad: 16, Tilstand: 1.
Dato/klokkeslæt SPID SQL Server-påstand: File: FilePath\FileName, line = LineNumber Failed Assertion = 'fFalse' Forsøg at få adgang til udløbet blob-handle (1). Denne fejl kan være relateret til timing. Hvis fejlen fortsætter, efter du har kørt sætningen igen, skal du bruge DBCC CHECKDB til at kontrollere databasen for strukturel integritet eller genstarte serveren for at sikre, at in-memory-datastrukturer ikke er beskadiget.
SPID for dato og klokkeslæt Fejl: 3624, Alvorsgrad: 20, Tilstand: 1.
SPID for dato og klokkeslæt En systemassertionskontrol mislykkedes. Kontrollér SQL Server-fejlloggen for at få flere oplysninger. Typisk er en assertionsfejl forårsaget af en softwarefejl eller beskadigelse af data. Hvis du vil kontrollere for beskadigede databaser, skal du overveje at køre DBCC CHECKDB. Hvis du har accepteret at sende dumps til Microsoft under installationen, sendes et minidump til Microsoft. Der kan være en opdatering tilgængelig fra Microsoft i den seneste servicepakke eller i et hotfix fra teknisk support.
Årsag
SQL Server har intern logik til at deaktivere cachelagring af forespørgsler, der refererer til store objekter, så efterfølgende udførelser ikke refererer til disse LOB'er (som blev oprettet under tidligere kørsler og derfor er ugyldige for efterfølgende kørsler). Denne logik håndterede ikke tilfældet med udskudt navneoversættelse (DNR) på midlertidige tabeller, der medførte, at disse planer blev cachelagret. Midlertidige måltabeller er dyre at oprette, og SQL Server cachelagrer dem til genbrug i efterfølgende udførelser. Dette forhindrer rekompilering af sådanne forespørgsler på grund af skemaændringer.
Få mere at vide om Udskudt navneoversættelse.
Løsning
Dette problem er rettet i følgende kumulative opdateringer til SQL Server:
Kumulativ opdatering 8 til SQL Server 2016 SP1
Kumulativ opdatering 4 til SQL Server 2017
Kumulativ opdatering 10 til SQL Server 2014 Service Pack 2
Om kumulative opdateringer til SQL Server
Hver ny kumulativ opdatering til SQL Server indeholder alle de programrettelser og sikkerhedsrettelser, der var i det tidligere build. Se den seneste kumulative opdatering til SQL Server:
Seneste kumulative opdatering til SQL Server 2016
Seneste kumulative opdatering til SQL Server 2017
Seneste kumulative opdateringer til SQL Server 2014
Status
Microsoft har bekræftet, at dette er et problem i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".
Referencer
Læs mere om den terminologi , Microsoft bruger til at beskrive softwareopdateringer.