J'ai une table qui contient 2,5 millions de lignes, chaque ligne a une colonne de type xml. Tous les enregistrements doivent être supprimés et mis en file d'attente dans une file d'attente de courtier de service sqlserver lorsqu'un message arrive dans une autre file d'attente (triggerqueue). La performance est très importante et maintenant c'est trop lent. Quel serait le meilleur moyen d'y parvenir?Enqueue chaque ligne dans une file d'attente ssb à partir d'une grande table
Actuellement, nous utilisons un sp activé sur le triggerqueue qui fait dans un certain temps (@message <> null) boucle:
begin transaction
delete top (1) from table output @tempTable
select top 1 @message = message from @tempTable
send on conversation @message
commit transaction
sont là des moyens plus rapides pour résoudre ce problème?
Soit dit en passant: avant que quelqu'un demande: nous devons commencer à partir de la table, car il est rempli avec la sortie d'une déclaration de fusion calculée précédemment