En plaine anglais quels sont les disadvanges et les avantages de l’utilisation de `` dans la requête pour les applications .NET et reporting services application ?
Réponses
Trop de publicités?Ce niveau d'isolation permet des lectures incorrectes. Une transaction peut voir les modifications non validées faite par une autre transaction.
Maintenir le plus haut niveau de l'isolation, un SGBD généralement acquiert des verrous sur les données, ce qui peut entraîner une perte de la simultanéité et une forte surcharge de verrouillage. Ce niveau d'isolation détend cette propriété.
Vous pouvez consultez l' article de Wikipedia sur READ UNCOMMITTED
quelques exemples et la poursuite de la lecture.
Vous pourriez également être intéressé par la vérification de Jeff Atwood l' article du blog sur la façon dont lui et son équipe s'est attaquée à un blocage question dans les premiers jours de Dépassement de Pile. Selon Jeff:
Mais est -
nolock
dangereux? Pourriez-vous fin lecture des données non valides avecread uncommitted
? Oui, en théorie. Vous aurez ne manque pas de trouver de la base de données l'architecture des astronautes qui commencent versant de l'ACIDE de la science sur vous et sur tous mais tirer l'alarme dans l'immeuble lors de l' vous leur dites que vous voulez essayernolock
. C'est vrai: la théorie est effrayant. Mais voici ce que je pense: "En théorie, il a pas de différence entre la théorie et la de pratique. Dans la pratique, il est."Je ne recommanderais jamais à l'aide de
nolock
comme un "bon pour ce que vous indispose" l'huile de serpent correctif pour toute base de données le blocage des problèmes que vous pourriez avoir. Vous devriez essayer de diagnostiquer la source de le premier problème.Mais, dans la pratique, l'ajout d'
nolock
pour les requêtes que vous devez absolument savoir sont simples et en lecture seule des affaires ne semble jamais conduire à des problèmes... aussi longtemps Que vous savez ce que vous faites.
Une alternative à l' READ UNCOMMITTED
niveau que vous souhaitez à considérer est l' READ COMMITTED SNAPSHOT
. Citant Jeff de nouveau:
Instantanés de compter sur une toute nouvelle modification des données méthode de suivi des ... plus que juste une légère modification logique, il nécessite que le serveur pour traiter les données physiquement différemment. Une fois que cette nouvelle modification des données méthode de suivi est activé, il crée une copie, ou d'un instantané de chaque modification de données. Par la lecture de ces instantanés plutôt que de vivre de données à la fois de la discorde, les Verrous Partagés ne sont plus nécessaires sur le lit, et l'ensemble des performances de base de données peut augmenter.
Mon cas d’utilisation préférée de non lecture est pour déboguer quelque chose qui se passe à l’intérieur d’une transaction.
Lancez votre logiciel sous un débogueur, tandis que vous parcourez les lignes il ouvre une transaction et qu’il modifie votre base de données. Lorsque le code est arrêté, vous pouvez ouvrir un analyseur de requêtes, lisez le niveau d’isolement cessent et effectuer des requêtes pour voir ce qui se passe.
C’est génial si votre entreprise aime faire trop complexes procédures stockées.
Cela peut être utile de voir les progrès de long insérer des requêtes, toujours des estimations grossières (comme ou rugueux
) etc.
En d’autres termes, les résultats le sale lire requêtes retour sont très bien aussi longtemps que vous traiter comme des estimations et ne font pas des décisions critiques fondées sur eux.
L'avantage est qu'il peut être plus rapide dans certaines situations. L'inconvénient est le résultat peut être erroné (données qui n'a pas été validée, mais il pourrait être renvoyé) et il n'ya aucune garantie que le résultat est reproductible.
Si vous vous souciez de précision, ne pas l'utiliser.
Pour plus d'informations sur MSDN:
Met en œuvre sale, de lire, d'isolement ou de niveau 0 de verrouillage, ce qui signifie que pas de verrous partagés sont émises et sans verrous exclusifs sont à l'honneur. Lorsque cette option est activée, il est possible de lire non validées ou sale de données; les valeurs dans les données peuvent être modifiées et les lignes peuvent apparaître ou disparaître dans le jeu de données avant la fin de la transaction. Cette option a le même effet que de définir NOLOCK sur toutes les tables de toutes les instructions SELECT dans une transaction. C'est le moins restrictif pour les quatre niveaux d'isolation.