Bonjour,
Je cherchais une requête pour récupérer les messages d'erreur liés aux niveau ISOLATION niveau SQL ?
Est ce que ces éventuelles erreurs sont tracées dans log ? comment les tracer avec Profiler ?
MERCI.
Bonne journée à tous.
A+
Bonjour,
Je cherchais une requête pour récupérer les messages d'erreur liés aux niveau ISOLATION niveau SQL ?
Est ce que ces éventuelles erreurs sont tracées dans log ? comment les tracer avec Profiler ?
MERCI.
Bonne journée à tous.
A+
Bonsoir,
Je ne comprends pas la question. L'isolation ne provoque pas d'erreur, ce sont les concurrences d'accès qui, en fonction de l'isolation, du type de verrou et de la taille de ces verrous peuvent provoquer des erreurs.
Quel est le besoin fonctionnel ?
Effectivement, aucune erreur n'est engendrée par le fait d'un de modifier le niveau d'isolation même s'il est inadapté. Petit exemple :
Ceci provoque une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 CREATE DATABASE TEST; GO USE TEST; GO CREATE TABLE T (C INT); INSERT INTO T VALUES (1); SET TRANSACTION ISOLATION LEVEL SNAPSHOT; BEGIN TRANSACTION UPDATE T SET C = C+ 1; COMMIT; GO
Msg*3952, Niveau*16, État*1, Ligne*9
La transaction d'isolement d'instantané n'a pas pu accéder à la base de données 'TEST' car l'isolement d'instantané n'est pas autorisé dans cette base de données. Utilisez ALTER DATABASE pour autoriser l'isolement d'instantané.
Mais l'erreur se produit à la ligne 9, c'est à dire à l'UPDATE et non au moment du SET TRANSACTION…
A +
Bonsoir,
J'ai ce message remontée dernièrement sur une instance 2012:
Je voudrai regardé au niveau de l'instance si ce message revient ou pas ...? comment tracer ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 A read operation on a large object failed while sending data to the client. A common cause for this is if the application is running in READ UNCOMMITTED isolation level.
MERCI.
A+
Il est probable que le développement de votre application ait été fait en utilisant massivement le "hint" NOLOCK dans les requêtes ce qui est une stupidité !
Commencez par virer ce hint de vos requêtes. Eventuellement, passez en mode de verrouillage optimiste pour la base en faisant un
Attention, ceci peut avoir quelques conséquences fonctionnelles. Assurez vous au moins que les transactions soient protégées…..
Code : Sélectionner tout - Visualiser dans une fenêtre à part ALTER DATABASE [MaBase] SET READ_COMMITTED_SNAPSHOT ON;
D'autre part, vous pouvez trapper cette erreur (7886 de niveau 20) par une alerte de l'Agent SQL.
A +
Bonjour,
L'erreur est à chercher alors sur le server applicatif ....?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Mais l'erreur se produit à la ligne 9, c'est à dire à l'UPDATE et non au moment du SET TRANSACTION
Merci.
A+
Bonjour,
Est-ce que le message d'erreur sur "READ UNCOMMITTED isolation level ..."
est remonté dans le journal des événements de Windows ?
Par avance Merci.
Ä+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager