Question

J'ai une situation particulière. J'ai des tableaux qui sont constamment accessibles par les différentes parties de notre code et des milliers de clients et donc nous avons eu recours à l'utilisation des transactions lorsque vous faites des mises à jour simples et encarts sur nos tables. Le problème est que nous continuons à obtenir des erreurs de blocage. Quelqu'un at-il une idée comment je peux résoudre ce problème?

Était-ce utile?

La solution

interblocages peuvent survenir pour de nombreuses raisons et les combinaisons de ceux-ci:

  • Une mauvaise conception du schéma

  • index incorrect pour votre requête charge de travail

  • TSQL

    mal écrit
  • niveaux d'isolation des transactions agressives et / ou l'exécution de longues transactions ouvertes

  • modèles d'accès aux applications pauvres

  • spec faible ou mal configuré matériel

Tous ces éléments sont communs.

Je vous suggère de lire

Autres conseils

Ce problème est pas trop particulière - il est typique lorsque les développeurs ne savent pas beaucoup sur la façon du verrouillage, et il suffit de penser des transactions comme des « boîtes noires » et attendent de leurs solutions à l'échelle

.

Mitch est juste dans les commentaires au sujet de payer quelqu'un qui est un expert - c'est un problème qui est trop grand pour une solution sur le SO. Vous allez avoir besoin d'être armé avec des traces de requêtes causant des blocages et vous allez devoir analyser tout de vos index pour la conception de votre table, à votre niveau d'isolement de transaction, à vos habitudes de requête.

Je suggère à partir de profils SQL Server et la mise en place d'une trace qui va générer un graphique de blocage. Cela au moins identifier vos questions problématiques et les ressources qui sont interblocage. Mettre en place une autre trace à la recherche pour les requêtes lentes (> dire 100ms) et d'accélérer les, aussi. Plus vos requêtes exécutées, plus la probabilité de conflit de verrouillage.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top