OVH Cloud OVH Cloud

Loks / verrous

2 réponses
Avatar
Guillaume
Bonjour,

Je rencontre un souci de verrous au niveau SQL serveur.
Je me trouve dans la situation suivante:
Une application web interroge une base SQL server 2000.
Lors d'un select, le seveur sql renvoie a l'appli web le message suivant:
Microsoft OLE DB Provider for SQL Server (0x80004005)
La transaction (ID du processus 64) a été bloquée sur les ressources lock
par un autre processus et a été choisie comme victime. Relancez la
transaction.

Après quelques recherches, j'ai appris qu'il est possible de configurer le
niveau d'isolation des procedures stockées.
Cependant, avant de modifier ce paramètre, je souhaiterai connaître le
niveau actuel d'isolation. La commande DBBCC USEROPTIONS ne mentionne pas ce
paramètre.
Comment puis-je voir cette information ?

d'autre part, si vous avez des suggestions sur la façon dont je pourrais
éliminer ces blocages sur verrous, je suis preneur.

Merci de votre aide.
Guillaume.

2 réponses

Avatar
bruno reiter [MVP]
par défaut READ COMMITED

pour éviter les deadlocks, principalement,
éviter les locks de table dans un ordre différent (client puis facture d'un
côté, facture puis client de l'autre)
éviter les escalades de lock concurrentes (mettre un TABLOCK quand on pense
qu'on va locker à terme la plupart des enregs d'une table dans une MàJ).

br

"Guillaume" wrote in message
news:
Bonjour,

Je rencontre un souci de verrous au niveau SQL serveur.
Je me trouve dans la situation suivante:
Une application web interroge une base SQL server 2000.
Lors d'un select, le seveur sql renvoie a l'appli web le message


suivant:
Microsoft OLE DB Provider for SQL Server (0x80004005)
La transaction (ID du processus 64) a été bloquée sur les ressources lock
par un autre processus et a été choisie comme victime. Relancez la
transaction.

Après quelques recherches, j'ai appris qu'il est possible de configurer le
niveau d'isolation des procedures stockées.
Cependant, avant de modifier ce paramètre, je souhaiterai connaître le
niveau actuel d'isolation. La commande DBBCC USEROPTIONS ne mentionne pas


ce
paramètre.
Comment puis-je voir cette information ?

d'autre part, si vous avez des suggestions sur la façon dont je pourrais
éliminer ces blocages sur verrous, je suis preneur.

Merci de votre aide.
Guillaume.


Avatar
Guillaume
Merci pour ces infos.

"bruno reiter [MVP]" wrote:

par défaut READ COMMITED

pour éviter les deadlocks, principalement,
éviter les locks de table dans un ordre différent (client puis facture d'un
côté, facture puis client de l'autre)
éviter les escalades de lock concurrentes (mettre un TABLOCK quand on pense
qu'on va locker à terme la plupart des enregs d'une table dans une MàJ).

br

"Guillaume" wrote in message
news:
> Bonjour,
>
> Je rencontre un souci de verrous au niveau SQL serveur.
> Je me trouve dans la situation suivante:
> Une application web interroge une base SQL server 2000.
> Lors d'un select, le seveur sql renvoie a l'appli web le message
suivant:
> Microsoft OLE DB Provider for SQL Server (0x80004005)
> La transaction (ID du processus 64) a été bloquée sur les ressources lock
> par un autre processus et a été choisie comme victime. Relancez la
> transaction.
>
> Après quelques recherches, j'ai appris qu'il est possible de configurer le
> niveau d'isolation des procedures stockées.
> Cependant, avant de modifier ce paramètre, je souhaiterai connaître le
> niveau actuel d'isolation. La commande DBBCC USEROPTIONS ne mentionne pas
ce
> paramètre.
> Comment puis-je voir cette information ?
>
> d'autre part, si vous avez des suggestions sur la façon dont je pourrais
> éliminer ces blocages sur verrous, je suis preneur.
>
> Merci de votre aide.
> Guillaume.