J'ai logiciel ( pas de source ) , qui fait que des "select" sur une base
SqlServeur,
bizarrement ,lorsque le 'Select' plusieurs lignes , des verrous sont placés
sur la base ( ??? ) .
Puis le Serveur retourne des "dead lock" pour les autres clients....
N'y a t il pas un moyen , d'éviter ce blocage , en faisant des manipes sur
le serveur...
Par exemple , limite le nombre de ligne d'un 'select' ou autre chose ...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred BROUARD
abraham a écrit:
Bonjour,
J'ai logiciel ( pas de source ) , qui fait que des "select" sur une base SqlServeur, bizarrement ,lorsque le 'Select' plusieurs lignes , des verrous sont placés sur la base ( ??? ) .
C'est un comportement normal
Puis le Serveur retourne des "dead lock" pour les autres clients....
C'est souvent du à une mauvaise écriture des transactions. les transactions sont -elles faites dans du code client ou dans des procédures stockées ?
N'y a t il pas un moyen , d'éviter ce blocage , en faisant des manipes sur le serveur...
Non, mais en récrivant les transactions correctement : 1) utiliser les différentes tables toujours dans le même sens 2) faire des transactions les plus courtes possible (par exemple unqiuement des proc stok) 3) piloter un niveau d'isolation des transaction en adéquation avec l'aspect fonctionnel du code 4) éventuellement, mais avec risque, implémenter une lecture sale
Par exemple , limite le nombre de ligne d'un 'select' ou autre chose ...
Merci d'avance
A + -- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
abraham a écrit:
Bonjour,
J'ai logiciel ( pas de source ) , qui fait que des "select" sur une base
SqlServeur,
bizarrement ,lorsque le 'Select' plusieurs lignes , des verrous sont placés
sur la base ( ??? ) .
C'est un comportement normal
Puis le Serveur retourne des "dead lock" pour les autres clients....
C'est souvent du à une mauvaise écriture des transactions.
les transactions sont -elles faites dans du code client ou dans des procédures
stockées ?
N'y a t il pas un moyen , d'éviter ce blocage , en faisant des manipes sur
le serveur...
Non, mais en récrivant les transactions correctement :
1) utiliser les différentes tables toujours dans le même sens
2) faire des transactions les plus courtes possible (par exemple unqiuement des
proc stok)
3) piloter un niveau d'isolation des transaction en adéquation avec l'aspect
fonctionnel du code
4) éventuellement, mais avec risque, implémenter une lecture sale
Par exemple , limite le nombre de ligne d'un 'select' ou autre chose ...
Merci d'avance
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
J'ai logiciel ( pas de source ) , qui fait que des "select" sur une base SqlServeur, bizarrement ,lorsque le 'Select' plusieurs lignes , des verrous sont placés sur la base ( ??? ) .
C'est un comportement normal
Puis le Serveur retourne des "dead lock" pour les autres clients....
C'est souvent du à une mauvaise écriture des transactions. les transactions sont -elles faites dans du code client ou dans des procédures stockées ?
N'y a t il pas un moyen , d'éviter ce blocage , en faisant des manipes sur le serveur...
Non, mais en récrivant les transactions correctement : 1) utiliser les différentes tables toujours dans le même sens 2) faire des transactions les plus courtes possible (par exemple unqiuement des proc stok) 3) piloter un niveau d'isolation des transaction en adéquation avec l'aspect fonctionnel du code 4) éventuellement, mais avec risque, implémenter une lecture sale
Par exemple , limite le nombre de ligne d'un 'select' ou autre chose ...
Merci d'avance
A + -- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
bruno reiter [MVP]
Il doit y avoir un niveau de transaction repeteable read ou serializable qui fait que les locks en lecture sont gardés, puis les selects se "dead lock" entre eux par la suite.
Il faut donc modifier le niveau d'isolation
set transcation isolation level
br
"abraham" wrote in message news:
Bonjour,
J'ai logiciel ( pas de source ) , qui fait que des "select" sur une base SqlServeur, bizarrement ,lorsque le 'Select' plusieurs lignes , des verrous sont
placés
sur la base ( ??? ) . Puis le Serveur retourne des "dead lock" pour les autres clients....
N'y a t il pas un moyen , d'éviter ce blocage , en faisant des manipes sur le serveur...
Par exemple , limite le nombre de ligne d'un 'select' ou autre chose ...
Merci d'avance
Il doit y avoir un niveau de transaction repeteable read ou serializable qui
fait que les locks en lecture sont gardés, puis les selects se "dead lock"
entre eux par la suite.
Il faut donc modifier le niveau d'isolation
set transcation isolation level
br
"abraham" <Zarko@9online.fr> wrote in message
news:uwnqtQfEFHA.3244@TK2MSFTNGP15.phx.gbl...
Bonjour,
J'ai logiciel ( pas de source ) , qui fait que des "select" sur une base
SqlServeur,
bizarrement ,lorsque le 'Select' plusieurs lignes , des verrous sont
placés
sur la base ( ??? ) .
Puis le Serveur retourne des "dead lock" pour les autres clients....
N'y a t il pas un moyen , d'éviter ce blocage , en faisant des manipes sur
le serveur...
Par exemple , limite le nombre de ligne d'un 'select' ou autre chose ...
Il doit y avoir un niveau de transaction repeteable read ou serializable qui fait que les locks en lecture sont gardés, puis les selects se "dead lock" entre eux par la suite.
Il faut donc modifier le niveau d'isolation
set transcation isolation level
br
"abraham" wrote in message news:
Bonjour,
J'ai logiciel ( pas de source ) , qui fait que des "select" sur une base SqlServeur, bizarrement ,lorsque le 'Select' plusieurs lignes , des verrous sont
placés
sur la base ( ??? ) . Puis le Serveur retourne des "dead lock" pour les autres clients....
N'y a t il pas un moyen , d'éviter ce blocage , en faisant des manipes sur le serveur...
Par exemple , limite le nombre de ligne d'un 'select' ou autre chose ...
Merci d'avance
Med Bouchenafa
Il peut être plus de la responsablité des auteurs de ce logiciel de corriger le problème SQL Server doit fonctionner normalement quelque soit le nombre de lignes retournées et d'accès concurrents Utilise le profiler pour regarder effectivement, comme te le suggère Bruno, le niveau d'isolation utilisée par ce logiciel C'est un bon début de diagnostics mais dans l'ensemble tu ne pourras que constater les faits.
-- Bien cordialement Med Bouchenafa
"abraham" a écrit dans le message de news:
Bonjour,
J'ai logiciel ( pas de source ) , qui fait que des "select" sur une base SqlServeur, bizarrement ,lorsque le 'Select' plusieurs lignes , des verrous sont placés sur la base ( ??? ) . Puis le Serveur retourne des "dead lock" pour les autres clients....
N'y a t il pas un moyen , d'éviter ce blocage , en faisant des manipes sur le serveur...
Par exemple , limite le nombre de ligne d'un 'select' ou autre chose ...
Merci d'avance
Il peut être plus de la responsablité des auteurs de ce logiciel de corriger
le problème
SQL Server doit fonctionner normalement quelque soit le nombre de lignes
retournées et d'accès concurrents
Utilise le profiler pour regarder effectivement, comme te le suggère Bruno,
le niveau d'isolation utilisée par ce logiciel
C'est un bon début de diagnostics mais dans l'ensemble tu ne pourras que
constater les faits.
--
Bien cordialement
Med Bouchenafa
"abraham" <Zarko@9online.fr> a écrit dans le message de news:
uwnqtQfEFHA.3244@TK2MSFTNGP15.phx.gbl...
Bonjour,
J'ai logiciel ( pas de source ) , qui fait que des "select" sur une base
SqlServeur,
bizarrement ,lorsque le 'Select' plusieurs lignes , des verrous sont
placés sur la base ( ??? ) .
Puis le Serveur retourne des "dead lock" pour les autres clients....
N'y a t il pas un moyen , d'éviter ce blocage , en faisant des manipes sur
le serveur...
Par exemple , limite le nombre de ligne d'un 'select' ou autre chose ...
Il peut être plus de la responsablité des auteurs de ce logiciel de corriger le problème SQL Server doit fonctionner normalement quelque soit le nombre de lignes retournées et d'accès concurrents Utilise le profiler pour regarder effectivement, comme te le suggère Bruno, le niveau d'isolation utilisée par ce logiciel C'est un bon début de diagnostics mais dans l'ensemble tu ne pourras que constater les faits.
-- Bien cordialement Med Bouchenafa
"abraham" a écrit dans le message de news:
Bonjour,
J'ai logiciel ( pas de source ) , qui fait que des "select" sur une base SqlServeur, bizarrement ,lorsque le 'Select' plusieurs lignes , des verrous sont placés sur la base ( ??? ) . Puis le Serveur retourne des "dead lock" pour les autres clients....
N'y a t il pas un moyen , d'éviter ce blocage , en faisant des manipes sur le serveur...
Par exemple , limite le nombre de ligne d'un 'select' ou autre chose ...