KB4074881 - CORRECTIF : erreur d’assertion lors de l’insertion en bloc de données dans une table qui contient des index columnstore non clusterés et clusterés dans SQL Server 2016 et 2017

S’applique à
SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 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

Symptômes

Supposons que vous exécutez une requête qui charge des données à l’aide de l’instruction BULK INSERT dans une table qui a à la fois un index columnstore non cluster et un index columnstore clustered dans SQL Server 2016 et 2017. Si la requête est exécutée en même temps via plusieurs connexions et que SQL Server n’accorde pas suffisamment de mémoire à certaines connexions, l’opération BULK INSERT peut échouer et vous recevez des erreurs d’assertion semblables à ce qui suit :

Remarque

  • Erreur : 17066, Gravité : 16, État : 1.
  • SQL Server Assertion : File :< qsupdate.cpp>, line=902 Failed Assertion = 'nullptr != m_prsBulkInPhases'. Cette erreur peut être liée à la minutage. Si l’erreur persiste après la réexécution de l’instruction, utilisez DBCC CHECKDB pour vérifier l’intégrité structurelle de la base de case activée ou redémarrez le serveur pour vous assurer que les structures de données en mémoire ne sont pas endommagées.
  • Erreur : 3624, Gravité : 20, État : 1.
  • Une case activée d’assertion système a échoué. Pour plus d’informations, consultez le journal des erreurs de SQL Server. En règle générale, un échec d’assertion est causé par un bogue logiciel ou une altération des données. Pour vérifier la case activée pour la base de données endommagée, envisagez d’exécuter DBCC CHECKDB. Si vous avez accepté d’envoyer des vidages à Microsoft pendant l’installation, un mini-vidage sera envoyé à Microsoft. Une mise à jour peut être disponible auprès de Microsoft dans le dernier Service Pack ou dans un correctif du Support technique.

En outre, un fichier d’image mémoire est généré par SQL Server.

Résolution

Ce correctif est inclus dans les mises à jour cumulatives suivantes pour SQL Server :

Mise à jour cumulative 6 pour SQL Server 2017

Mise à jour cumulative 8 pour SQL Server 2016 Service Pack 1.

À propos des builds de SQL Server

Chaque nouvelle build de SQL Server 2016 contient tous les correctifs logiciels et correctifs de sécurité qui se trouvaient dans la version précédente. Nous vous recommandons d’installer les dernières mises à jour cumulatives pour SQL Server :

Dernière mise à jour cumulative pour SQL Server 2017

Dernière build pour SQL Server 2016

État

Microsoft a confirmé qu’il s’agissait d’un problème dans les produits Microsoft répertoriés dans la section « S’applique à ».

Références

Découvrez la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.