Cause d'un processus d'être une victime

J'ai un processus avec une sélection qui prend beaucoup de temps pour terminer, sur l'ordre de 5 à 10 minutes.
Je ne suis actuellement pas en utilisant NOLOCK comme une allusion à la base de données MS SQL moteur.
Dans le même temps, nous avons un autre processus de faire de mises à jour et les insère dans la même base de données et même des tables.
Le premier processus a commencé, récemment, à la fin prématurément à un message

SQLEXCEPTION: Transaction a été bloquée sur les ressources par un autre processus et a été choisie comme victime.

Ce premier processus est en cours d'exécution à d'autres sites dans des conditions identiques, mais avec de petites bases de données et donc l'instruction select dans la question prend une période de temps plus courte (de l'ordre de 30 secondes). Dans ces autres sites, je n'ai pas l'impasse message dans ces autres sites. J'ai aussi fait de ne pas obtenir ce message sur le site qui est d'avoir le problème au départ, mais, je suppose, que la base de données a poussé, je crois que je dois avoir franchi un certain seuil. Voici mes questions:

  1. Pourraient le temps qu'il faut pour une opération à exécuter rendre le processus plus susceptibles d'être signalée comme une victime.
  2. Si je exécuter la sélection avec un indicateur NOLOCK, ça va enlever le problème?
  3. Je soupçonne qu'un champ datetime qui est vérifiée dans le cadre de la clause where dans l'instruction select est à l'origine de la lenteur de la recherche de temps. Puis-je créer un index sur ce champ? Est-il conseillé?
  • Réponse partielle au point 1: Ne pas confondre un blocage avec un délai d'attente. Si vous souffriez d'un délai d'attente puis le temps de participer à la finition d'une transaction peut être responsable de l'autre abending. Aussi, il serait utile de savoir quelles sont les ressources qui vous sont interblocage sur (est-il d'un index ou d'une table?).
  • SET DEADLOCK_PRIORITY autel de la BASE de données dbname SET MULTI_USER;
InformationsquelleAutor Elliott | 2011-12-05