Applies ToSQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Symptômes

Une erreur d’assertion est susceptible de se produire lorsque Microsoft SQL Server exécute à plusieurs reprises une procédure stockée qui effectue les opérations suivantes :

  • Prend un objet de grande taille, comme varchar (max) ou varbinary (max), comme argument et

  • Crée une table temporaire dans le cadre de l’exécution de la procédure et

  • Utilise l’argument objet volumineux dans la table temporaire.

L’erreur d’assertion qui ressemble à ce qui suit dans le journal des erreurs SQL Server est peut-être :

ErreurSPID date/heure: 17065, gravité : 16, État : 1. 

Date/heure SPID SQL Server assertion : file : filePath \filename, line = LineNumber Fail assertion = 'fFalse’tentative d’accès au handle d’objet BLOB expiré (1). Cette erreur est éventuellement liée au minutage. Si l’erreur persiste après avoir reexécuté l’instruction, utilisez DBCC CHECKDB pour vérifier l’intégrité structurelle de la base de données, ou redémarrez le serveur pour vérifier que les structures de données en mémoire ne sont pas endommagées.

Erreur SPID date/heure : 3624, gravité : 20, État : 1.

Date/heure SPID échec d’une vérification d’assertion système. Pour plus d’informations, consultez le journal des erreurs SQL Server. En règle générale, un échec d’assertion est lié à un bogue logiciel ou à des données endommagées. Pour vérifier la corruption de la base de données, envisagez d’exécuter DBCC CHECKDB. Si vous avez accepté d’envoyer des vidages à Microsoft lors de l’installation, un mini-vidage sera envoyé à Microsoft. Il est possible qu’une mise à jour soit disponible à partir de Microsoft dans le Service Pack le plus récent ou dans un correctif du support technique.

Cause

SQL Server dispose d’une logique interne pour désactiver la mise en cache des requêtes qui font référence à des objets volumineux de sorte que les exécutions suivantes ne référencent pas ces LOB (qui ont été créés au cours des exécutions antérieures et ne sont donc pas valides pour les exécutions suivantes). Cette logique ne gérait pas le cas de la résolution de nom différé (DNR) sur les tables temporaires qui ont entraîné la mise en cache de ces plans. Les tables temporaires étendues sont onéreuses à créer et SQL Server les met en cache pour pouvoir les réutiliser dans les exécutions ultérieures. Cela empêche toute recompilation de ces requêtes en raison de modifications de schéma.

En savoir plus sur la résolution de nom différé.

Résolution

Ce problème a été résolu dans les mises à jour cumulatives de SQL Server suivantes :

       Mise à jour cumulative 8 pour SQL Server 2016 SP1  

       Mise à jour cumulative 4 pour SQL Server 2017

       Mise à jour cumulative 10 pour SQL Server 2014 Service Pack 2

Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs et correctifs de sécurité présents dans la build précédente. Pour obtenir la dernière mise à jour cumulative de SQL Server, procédez comme suit :

Dernière mise à jour cumulative pour SQL Server 2016

Dernière mise à jour cumulative pour SQL Server 2017

dernières mises à jour cumulatives pour SQL Server 2014

Statut

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.

Références

Apprenez-en davantage sur la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.