Je ne sais pas trop pourquoi vous n'intégrez pas les transactions financières dans des transactions de base de données (comme lorsque vous transférez des fonds d'un compte à un autre - vous n'engagez pas une partie de la transaction à la fois - c'est la raison pour laquelle les transactions explicites existent). Même si votre code n'est pas adapté aux transactions commerciales, comme cela semble être le cas, toutes les bases de données transactionnelles ont la possibilité de faire des retours en arrière implicites en cas d'erreurs ou d'échecs. Je pense que cette discussion vous dépasse largement.
Si vous rencontrez des problèmes de verrouillage, mettez en place un système de gestion des versions et nettoyez votre code.
L'absence de verrouillage ne renvoie pas seulement des valeurs erronées, mais aussi des enregistrements fantômes et des doublons.
On croit souvent à tort qu'il accélère toujours les requêtes. S'il n'y a pas de verrous d'écriture sur une table, cela ne fait aucune différence. S'il y a des verrous sur la table, cela peut rendre la requête plus rapide, mais il y a une raison pour laquelle les verrous ont été inventés en premier lieu.
Par souci d'équité, voici deux scénarios particuliers dans lesquels un indice nolock peut s'avérer utile
1) Base de données sql server d'avant 2005 qui doit exécuter des requêtes longues sur une base de données OLTP vivante - c'est peut-être le seul moyen.
2) Une application mal écrite qui verrouille les enregistrements et renvoie le contrôle à l'interface utilisateur et les lecteurs sont indéfiniment bloqués. Nolock peut être utile ici si l'application ne peut pas être corrigée (tierce partie, etc.) et si la base de données est antérieure à 2005 ou si la gestion des versions ne peut pas être activée.
0 votes
J'ai sous-questionné en stackoverflow.com/questions/3836282/ y stackoverflow.com/questions/3836032/ surtout la réponse de Jonathan Allen stackoverflow.com/questions/686724/
1 votes
Un lien ici - mssqltips.com/sqlservertip/2470/
1 votes
Voici un excellent résumé des implications de l'utilisation de NOLOCK blogs.msdn.com/b/davidlean/archive/2009/04/06/