Question

Après la migration des données de SQL Server 2000 vers SQL Server 2008, quand je suis en train de faire toute une transaction dans le tableau qui en savoir plus sur la ligne de la base de données, qui me donne l'erreur.

 Transaction (Process ID 59) was deadlocked on lock resources with
 another process and has been chosen as the deadlock victim. 
 Rerun the transaction.

Il y a 3 éléments déclencheurs sur la table (Insert, Update, Delete). Comment puis-je résoudre ce problème?

Était-ce utile?

La solution

Après la mise à niveau vers SQL Server 2008, avez-vous couru le bas?

  1. DBCC UPDATEUSGAE
  2. Mise à jour STATS AVEC FULLSCAN
  3. Tout regénérer INDEXES

Les statistiques blob est modifiée de manière significative entre 2000 et SQL Server 2008 et les étapes ci-dessus sont très importants après la mise à niveau. Je l'ai vu beaucoup de ppl rencontrer des problèmes de performance mais pas DEADLOCKS. Je voudrais essayer de faire tout ce qui précède, si vous avez pas jusqu'à présent et d'essayer de reproduire le problème après.

Cela dit, ce qui est le résultat de la version SELECT sur la boîte 2008? Souhaitez-vous mettre une ligne ou plusieurs lignes?

Autres conseils

suspect que cela peut être lié aux optimiseurs dans les différentes versions de manipulation escalade de verrouillage différemment. Pouvez-vous vérifier les événements Lock:Escalation?

Si vous exécutez Profiler et d'enregistrer tous les graphiques de blocage, alors vous pouvez savoir exactement quelles tables les blocages se produisent sur, y compris les pages. Cela devrait aider à le réduire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top