Ongelman ilmenemistapa
Vahvistusvirhe voi ilmetä, kun Microsoft SQL Server suorittaa toistuvasti tallennetun toimintosarjan, joka suorittaa seuraavat toimet:
- Ottaa argumenttina suuren objektin, kuten varchar(max) tai varbinary(max).
- Luo väliaikaisen taulukon, jonka laajuus koskee toimintosarjan suorittamista.
- Käyttää väliaikaisen taulukon suuren objektin argumenttia.
SQL Server -virhelokissa saattaa esiintyä seuraavankaltainen vahvistusvirhe:
Päivämäärä/kellonaika SPID Virhe: 17065, vakavuus: 16, tila: 1.
Päivämäärä/aika SPID SQL Server -vahvistus: Tiedosto: FilePath\FileName, line = LineNumber Failed Assertion = 'fFalse' Yritä käyttää vanhentunutta blob-kahvaa (1). Tämä virhe saattaa liittyä ajoitukseen. Jos virhe poistuu lausekkeen suorittamisen jälkeen, tarkista tietokannan rakenteellinen eheys DBCC CHECKDB -komennolla tai käynnistä palvelin uudelleen varmistaaksesi, että muistissa olevat tietorakenteet eivät ole vioittuneet.
Päivämäärä/kellonaika SPID Virhe: 3624, vakavuus: 20, tila: 1.
Päivämäärä/kellonaika SPID Järjestelmän vahvistustarkistus epäonnistui. Katso lisätietoja SQL Server -virhelokista. Vahvistusvirhe johtuu yleensä ohjelmistovirheestä tai tietojen vioittumisesta. Jos haluat tarkistaa tietokannan vioittumisen, harkitse DBCC CHECKDB -komennon suorittamista. Jos olet asennuksen aikana hyväksynyt vedosten lähettämisen Microsoftille, Microsoftille lähetetään pikavedos. Päivitys saattaa olla saatavilla Microsoftilta uusimmassa Service Packissa tai teknisen tuen Hotfix-korjauksessa.
Syy
SQL Server käyttää sisäistä logiikkaa, jonka avulla suurten objektien kyselyjen välimuistitallennus voidaan poistaa käytöstä, jotta myöhemmät suoritukset eivät viittaa kyseisiin LOB-objekteihin (jotka on luotu aiempien suoritusten aikana ja jotka eivät näin ollen kelpaa myöhemmille suorituksille). Tämä logiikka ei käsitellyt tilapäisten taulukoiden viivästettyä nimenselvitystä (DNR), joka aiheutti suunnitelmien tallennuksen välimuistiin. Kohdistettujen tilapäisten taulukoiden luominen on kallista, ja SQL Server tallentaa ne välimuistiin myöhempiä suorituksia varten. Tämä estää tällaisten kyselyjen kääntämisen uudelleen rakennemuutosten vuoksi.
Lisätietoja Lykätystä nimenselvityksestä.
Ratkaisu
Tämä ongelma on korjattu seuraavissa SQL Server kumulatiivisissa päivityksissä:
SQL Server 2016 SP1:n kumulatiivinen päivitys 8
SQL Server 2017:n kumulatiivinen päivitys 4
SQL Server 2014 Service Pack 2:n kumulatiivinen päivitys 10
Tietoja SQL Serverin kumulatiivisista päivityksistä
Jokainen uusi kumulatiivinen SQL Server -päivitys sisältää kaikki edellisen koontiversion hotfix-korjaukset ja tietoturvakorjaukset. Tutustu SQL Serverin uusimpaan kumulatiiviseen päivitykseen:
SQL Server 2016:n uusin kumulatiivinen päivitys
SQL Server 2017:n uusin kumulatiivinen päivitys
SQL Server 2014:n uusimmat kumulatiiviset päivitykset
Tila
Microsoft on vahvistanut tämän olevan ongelma niissä Microsoftin tuotteissa, jotka ovat listattuna Koskee seuraavia tuotteita -osiossa.
Viitteet
Lue lisää Microsoftin ohjelmistopäivitystensä kuvaamiseen käyttämästä sanastosta .