KB4338715 - CORRECTIF : de nombreux événements xml_deadlock_report sont signalés pour une seule occurrence de blocage intra-requête en SQL Server 2016 et 2017

S’applique à
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) SQL Server 2017 Developer SQL Server 2017 Enterprise Core SQL Server 2017 Enterprise

Symptômes

Supposons que vous utilisez Microsoft SQL Server 2016 et 2017. Si vous activez le xml_deadlock_report d’événements pour collecter des données pour les interblocages, de nombreux événements xml_deadlock_report sont signalés pour une seule occurrence d’interblocage intra-requête.

Solution de contournement

Pour contourner ce problème, vous pouvez collecter le error_reported XEvent en utilisant un filtre error_number = 1205 au lieu de xml_deadlock_report, comme dans l’exemple suivant :

Remarque

  • CRÉER UNE SESSION D’ÉVÉNEMENT [Deadlock_Collection] SUR LE SERVEUR
  • AJOUTER UN ÉVÉNEMENT sqlserver.error_reported(
  • WHERE ([error_number]=(1205)))
  • ADD TARGET package0.histogram(SET filtering_event_name=N’sqlserver.lock_acquired',source=N’sqlserver.query_hash')
  • AVEC (MAX_MEMORY=4096 KO,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDES,MAX_EVENT_SIZE=0 KO,MEMORY_PARTITION_MODE=AUCUN,TRACK_CAUSALITY=ON,STARTUP_STATE=OFF)
  • GO

Résolution

Ce problème est résolu dans les mises à jour cumulatives suivantes pour SQL Server :

Mise à jour cumulative 10 pour SQL Server 2017

Mise à jour cumulative 2 pour SQL Server 2016 SP2

Remarque : Avec ce correctif, aucun événement xml_deadlock_report n’est signalé pour l’interblocage intra-requête lorsque l’interblocage peut être résolu sans arrêter un thread.

À propos des mises à jour cumulatives pour SQL Server :

Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs logiciels et tous les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Consultez les dernières mises à jour cumulatives pour SQL Server :

Dernière mise à jour cumulative pour SQL Server 2017

Dernière mise à jour cumulative 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

En savoir plus à propos de la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.