KB4058565-Fix: Assertionsfehler beim Ausführen einer gespeicherten Prozedur, die auf ein großes Objekt in SQL Server 2014, 2016 und 2017 verweist

Problembeschreibung

Ein Assertionsfehler kann auftreten, wenn Microsoft SQL Server wiederholt eine gespeicherte Prozedur ausführt, die Folgendes ausführt:

  • Nimmt ein großes Objekt wie varchar (max) oder varbinary (max)als Argument an und

  • Erstellt eine temporäre Tabelle, die auf die Ausführung der Prozedur begrenzt ist, und

  • Verwendet das Argument "großes Objekt" in der temporären Tabelle.

Möglicherweise finden Sie den Assertionsfehler, der im SQL Server-Fehlerprotokoll wie folgt aussieht:

SPID -Fehler Datum/Uhrzeit: 17065, Schweregrad: 16, Zustand: 1. 

Datum/Uhrzeit- SPID -SQL Server-Assertion: Datei: Dateipfad \Dateiname, Zeile = LineNumber failed Assertion = "fFalse" versucht, auf abgelaufenen BLOB-handle zuzugreifen (1). Dieser Fehler kann Zeit bezogen sein. Wenn der Fehler nach erneuter Ausführung der Anweisung weiterhin auftritt, verwenden Sie DBCC CHECKDB, um die Datenbank auf strukturelle Integrität zu überprüfen, oder starten Sie den Server neu, um sicherzustellen, dass die Datenstrukturen im Arbeitsspeicher nicht beschädigt sind.

SPID -Fehler Datum/Uhrzeit : 3624, Schweregrad: 20, Zustand: 1.

SPID für Datum/Uhrzeiteine System Assertionsüberprüfung ist fehlgeschlagen. Weitere Informationen finden Sie im SQL Server-Fehlerprotokoll. In der Regel wird ein Assertionsfehler durch einen Softwarefehler oder Datenbeschädigung verursacht. Wenn Sie nach einer Datenbankbeschädigung suchen möchten, sollten Sie DBCC CHECKDB ausführen. Wenn Sie während des Setups zugestimmt haben, Dumps an Microsoft zu senden, wird ein Mini-dump an Microsoft gesendet. Möglicherweise ist ein Update von Microsoft im neuesten Service Pack oder in einem Hotfix vom technischen Support erhältlich.

Ursache

SQL Server verfügt über eine interne Logik zum Deaktivieren der Zwischenspeicherung von Abfragen, die auf große Objekte verweisen, damit nachfolgende Ausführungen nicht auf die LOBs verweisen (die während vorheriger Läufe erstellt wurden und daher für nachfolgende Ausführungen ungültig sind). Diese Logik hat den Fall der verzögerten Namensauflösung (Aufhebung ) für temporäre Tabellen, die dazu geführt haben, dass diese Pläne zwischengespeichert wurden, nicht behandelt. Temporäre Tabellen mit Gültigkeitsbereich sind aufwendig zu erstellen, und SQL Server speichert Sie für die Wiederverwendung in nachfolgenden Ausführungen zwischen. Dadurch wird die Neukompilierung solcher Abfragen aufgrund von Schemaänderungen verhindert.

Weitere Informationen zu verzögerter Namensauflösung.

Fehlerbehebung

Dieses Problem wurde in den folgenden kumulativen Updates für SQL Server behoben:

       Kumulatives Update 8 für SQL Server 2016 SP1  

       Kumulatives Update 4 für SQL Server 2017

       Kumulatives Update 10 für SQL Server 2014 Service Pack 2

Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und Sicherheitsupdates, die sich im vorherigen Build befanden. Schauen Sie sich das neueste kumulative Update für SQL Server an:

Neuestes Kumulatives Update für SQL Server 2016

Neuestes Kumulatives Update für SQL Server 2017

aktuelle kumulative Updates für SQL Server 2014

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.

Informationsquellen

Informieren Sie sich über die Terminologie , die Microsoft zum Beschreiben von Softwareupdates verwendet.

Benötigen Sie weitere Hilfe?

Ihre Office-Fähigkeiten erweitern
Schulungen erkunden
Neue Funktionen als Erster erhalten
Microsoft Insider beitreten

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×