Příznaky
Pokud Microsoft SQL Server opakovaně provádí uloženou proceduru, která provádí následující akce, může dojít k chybě vyhodnocení:
-
Přebírá velký objekt, například varchar (max) nebo varbinary (max), jako argument a
-
Vytvoří dočasnou tabulku, která je v oboru provádění postupu, a
-
Pomocí argumentu velký objekt v dočasné tabulce.
V protokolu chyb systému SQL Server se může zobrazit chyba výrazu, která se podobá následujícímu:
Datum a čas SPID Chyba: 17065, závažnost: 16, stav: 1.
Datum a čas SPID SQL Server assertion: soubor: FilePath \filename, line = lineNumber neúspěšný kontrolní výraz = ' fFalse ' pokus o přístup k neúspěšnému popisovači objektu BLOB (1). K této chybě mohlo dojít při časování. Pokud chyba přetrvává i po novém spuštění příkazu, pomocí příkazu DBCC CHECKDB zkontrolujte, jestli databáze není strukturovaná, nebo restartujte server, aby nedošlo k poškození datových struktur v paměti.
Datum a čas SPID Chyba: 3624, závažnost: 20, stav: 1.
Datum a čas SPID : Kontrola kontrolního výrazu se nezdařila. Podrobnosti najdete v protokolu chyb systému SQL Server. Selhání výrazu obvykle způsobuje chybu softwaru nebo poškození dat. Pokud chcete zkontrolovat poškození databáze, zkuste spustit příkaz DBCC CHECKDB. Pokud jste se dohodli, že budete během instalace posílat výpisy Microsoftu, pošle vám do Microsoftu mini výpis. Aktualizace může být k dispozici od Microsoftu v nejnovější aktualizaci Service Pack nebo v opravě hotfix technické podpory.
Příčina
SQL Server má interní logiku, která zakáže ukládání dotazů, které odkazují na velké objekty, takže následné provádění neodkazuje na tyto LOBs (které byly vytvořené při předchozích spuštěních, a proto jsou neplatné pro následné spuštění). Tato logika nezpracovala případy odloženého překladu IP adres (DNR) v dočasných tabulkách, které tyto plány vyvolaly. Dočasné tabulky s oborem jsou nákladné pro vytváření a SQL Server je ukládá do mezipaměti, aby je bylo možné opakovaně používat. Tím se zabrání překompilování takových dotazů kvůli změnám schématu.
Přečtěte si další informace o překladu IP adres.
Řešení
Tento problém je opravený v následujících kumulativních aktualizacích systému SQL Server:
Kumulativní aktualizace 8 pro SQL Server 2016 SP1
Kumulativní aktualizace 4 pro SQL Server 2017
Kumulativní aktualizace 10 pro SQL Server 2014 Service Pack 2
Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a opravy zabezpečení, které byly v předchozím buildu. Podívejte se na nejnovější kumulativní aktualizaci SQL serveru:
Nejnovější kumulativní aktualizace pro SQL Server 2016
Nejnovější kumulativní aktualizace pro SQL Server 2017
nejnovější kumulativní aktualizace pro SQL Server 2014
Stav
Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.
Odkazy
Informace o terminologii , kterou Microsoft používá k popisu aktualizací softwaru.