J'essaie de minimiser le temps d'execution d'une procedure stockee qui met a
jour des tables apres verification des donnees et ai constate que le temps
d'execution etait tres rallonge a cause d'un select....
Soit
une table contenant environ 100000 lignes avec une cle primaire sur
A+B+C
une procedure stockee qui contient un ordre select.
Un script execute la procedure stockee, et je teste la rapidite d'execution
du select dans plusieurs cas.
Si le select contient toute la cle primaire
select @champs1=champs1 from table where A=@A , B=@B,C=@C , j'obtiens un
temps d'execution de 300millisecondes
Si le select ne contient pas toute la cle primaire
select @champs1=champs1 from table where A=@A , B=@B, (sans mettre tous
les champs de l'indexe) j'obtiens 130 millisecondes
Je ne comprends pas pourquoi le temps d'execution est reduit de moitie
lorsque je n'instruis pas tous les champs de la cle primaire.
Il me semble que cela devrait etre l'inverse
De plus si j'execute le select directement dans le script (sans l'appeler
dans une procedure stockee) j'obtiens un temps d'execution de 20ms
Je ne comprends pas un tel ecart de performance.
Quequ'un a t il une explication ou n debut d'explication?
En vous remerciant d'avance pour votre aide.
Meilleures salutations
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
SQLpro [MVP]
Michel Drot a écrit :
Bonjour a tous,
J'essaie de minimiser le temps d'execution d'une procedure stockee qui met a jour des tables apres verification des donnees et ai constate que le temps d'execution etait tres rallonge a cause d'un select....
Soit une table contenant environ 100000 lignes avec une cle primaire sur A+B+C une procedure stockee qui contient un ordre select.
Un script execute la procedure stockee, et je teste la rapidite d'execution du select dans plusieurs cas.
Si le select contient toute la cle primaire select @champs1=champs1 from table where A=@A , B=@B,C=@C , j'obtiens un temps d'execution de 300millisecondes
Il y a plus de travail à faire pour lire 3 données que 2 !
Si le select ne contient pas toute la cle primaire select @champs1=champs1 from table where A=@A , B=@B, (sans mettre tous les champs de l'indexe) j'obtiens 130 millisecondes
Donc parfaitement logique
Je ne comprends pas pourquoi le temps d'execution est reduit de moitie lorsque je n'instruis pas tous les champs de la cle primaire. Il me semble que cela devrait etre l'inverse
De plus si j'execute le select directement dans le script (sans l'appeler dans une procedure stockee) j'obtiens un temps d'execution de 20ms
Postez votre Proc Stoc
Je ne comprends pas un tel ecart de performance.
Quequ'un a t il une explication ou n debut d'explication?
En vous remerciant d'avance pour votre aide. Meilleures salutations
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Michel Drot a écrit :
Bonjour a tous,
J'essaie de minimiser le temps d'execution d'une procedure stockee qui met a
jour des tables apres verification des donnees et ai constate que le temps
d'execution etait tres rallonge a cause d'un select....
Soit
une table contenant environ 100000 lignes avec une cle primaire sur
A+B+C
une procedure stockee qui contient un ordre select.
Un script execute la procedure stockee, et je teste la rapidite d'execution
du select dans plusieurs cas.
Si le select contient toute la cle primaire
select @champs1=champs1 from table where A=@A , B=@B,C=@C , j'obtiens un
temps d'execution de 300millisecondes
Il y a plus de travail à faire pour lire 3 données que 2 !
Si le select ne contient pas toute la cle primaire
select @champs1=champs1 from table where A=@A , B=@B, (sans mettre tous
les champs de l'indexe) j'obtiens 130 millisecondes
Donc parfaitement logique
Je ne comprends pas pourquoi le temps d'execution est reduit de moitie
lorsque je n'instruis pas tous les champs de la cle primaire.
Il me semble que cela devrait etre l'inverse
De plus si j'execute le select directement dans le script (sans l'appeler
dans une procedure stockee) j'obtiens un temps d'execution de 20ms
Postez votre Proc Stoc
Je ne comprends pas un tel ecart de performance.
Quequ'un a t il une explication ou n debut d'explication?
En vous remerciant d'avance pour votre aide.
Meilleures salutations
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
J'essaie de minimiser le temps d'execution d'une procedure stockee qui met a jour des tables apres verification des donnees et ai constate que le temps d'execution etait tres rallonge a cause d'un select....
Soit une table contenant environ 100000 lignes avec une cle primaire sur A+B+C une procedure stockee qui contient un ordre select.
Un script execute la procedure stockee, et je teste la rapidite d'execution du select dans plusieurs cas.
Si le select contient toute la cle primaire select @champs1=champs1 from table where A=@A , B=@B,C=@C , j'obtiens un temps d'execution de 300millisecondes
Il y a plus de travail à faire pour lire 3 données que 2 !
Si le select ne contient pas toute la cle primaire select @champs1=champs1 from table where A=@A , B=@B, (sans mettre tous les champs de l'indexe) j'obtiens 130 millisecondes
Donc parfaitement logique
Je ne comprends pas pourquoi le temps d'execution est reduit de moitie lorsque je n'instruis pas tous les champs de la cle primaire. Il me semble que cela devrait etre l'inverse
De plus si j'execute le select directement dans le script (sans l'appeler dans une procedure stockee) j'obtiens un temps d'execution de 20ms
Postez votre Proc Stoc
Je ne comprends pas un tel ecart de performance.
Quequ'un a t il une explication ou n debut d'explication?
En vous remerciant d'avance pour votre aide. Meilleures salutations
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Michel Drot
> > Bonjour a tous, > > J'essaie de minimiser le temps d'execution d'une procedure stockee qui
met a
> jour des tables apres verification des donnees et ai constate que le
temps
> d'execution etait tres rallonge a cause d'un select.... > > Soit > une table contenant environ 100000 lignes avec une cle primaire sur > A+B+C > une procedure stockee qui contient un ordre select. > > Un script execute la procedure stockee, et je teste la rapidite
d'execution
> du select dans plusieurs cas. > > Si le select contient toute la cle primaire > select @champs1=champs1 from table where A=@A , B=@B,C=@C ,
j'obtiens un
> temps d'execution de 300millisecondes
Il y a plus de travail à faire pour lire 3 données que 2 !
> > Si le select ne contient pas toute la cle primaire > select @champs1=champs1 from table where A=@A , B=@B, (sans mettre
tous
> les champs de l'indexe) j'obtiens 130 millisecondes
Donc parfaitement logique
L'essai que j'ai fait ne confirme pas cela Voici les resultats que j'obtiens 1) Temps avec codecinema noseance et tarif 300 (avec 3 donnees de la cle primaire) 2) Temps avec noseance et tarif 140 (avec 2 donnees) 3) Temps avec codecinema noseance et tarif 2eme recherche 333 (avec 3 donnees de la cle primaire) 4) Temps avec noseance tarif et prix 140 (avec 3 donnees dont une ne faisant pas partie de la cle primaire)
Postez votre Proc Stoc
Ci joint.
Merci pour votre reponse
> > Bonjour a tous,
>
> J'essaie de minimiser le temps d'execution d'une procedure stockee qui
met a
> jour des tables apres verification des donnees et ai constate que le
temps
> d'execution etait tres rallonge a cause d'un select....
>
> Soit
> une table contenant environ 100000 lignes avec une cle primaire sur
> A+B+C
> une procedure stockee qui contient un ordre select.
>
> Un script execute la procedure stockee, et je teste la rapidite
d'execution
> du select dans plusieurs cas.
>
> Si le select contient toute la cle primaire
> select @champs1=champs1 from table where A=@A , B=@B,C=@C ,
j'obtiens un
> temps d'execution de 300millisecondes
Il y a plus de travail à faire pour lire 3 données que 2 !
>
> Si le select ne contient pas toute la cle primaire
> select @champs1=champs1 from table where A=@A , B=@B, (sans mettre
tous
> les champs de l'indexe) j'obtiens 130 millisecondes
Donc parfaitement logique
L'essai que j'ai fait ne confirme pas cela
Voici les resultats que j'obtiens
1) Temps avec codecinema noseance et tarif 300 (avec 3 donnees de
la cle primaire)
2) Temps avec noseance et tarif 140 (avec 2 donnees)
3) Temps avec codecinema noseance et tarif 2eme recherche 333 (avec
3 donnees de la cle primaire)
4) Temps avec noseance tarif et prix 140 (avec 3 donnees dont une ne
faisant pas partie de la cle primaire)
> > Bonjour a tous, > > J'essaie de minimiser le temps d'execution d'une procedure stockee qui
met a
> jour des tables apres verification des donnees et ai constate que le
temps
> d'execution etait tres rallonge a cause d'un select.... > > Soit > une table contenant environ 100000 lignes avec une cle primaire sur > A+B+C > une procedure stockee qui contient un ordre select. > > Un script execute la procedure stockee, et je teste la rapidite
d'execution
> du select dans plusieurs cas. > > Si le select contient toute la cle primaire > select @champs1=champs1 from table where A=@A , B=@B,C=@C ,
j'obtiens un
> temps d'execution de 300millisecondes
Il y a plus de travail à faire pour lire 3 données que 2 !
> > Si le select ne contient pas toute la cle primaire > select @champs1=champs1 from table where A=@A , B=@B, (sans mettre
tous
> les champs de l'indexe) j'obtiens 130 millisecondes
Donc parfaitement logique
L'essai que j'ai fait ne confirme pas cela Voici les resultats que j'obtiens 1) Temps avec codecinema noseance et tarif 300 (avec 3 donnees de la cle primaire) 2) Temps avec noseance et tarif 140 (avec 2 donnees) 3) Temps avec codecinema noseance et tarif 2eme recherche 333 (avec 3 donnees de la cle primaire) 4) Temps avec noseance tarif et prix 140 (avec 3 donnees dont une ne faisant pas partie de la cle primaire)
Postez votre Proc Stoc
Ci joint.
Merci pour votre reponse
SQLpro [MVP]
Michel Drot a écrit :
Bonjour a tous,
J'essaie de minimiser le temps d'execution d'une procedure stockee qui
met a
jour des tables apres verification des donnees et ai constate que le
temps
d'execution etait tres rallonge a cause d'un select....
Soit une table contenant environ 100000 lignes avec une cle primaire sur A+B+C une procedure stockee qui contient un ordre select.
Un script execute la procedure stockee, et je teste la rapidite
d'execution
du select dans plusieurs cas.
Si le select contient toute la cle primaire select @champs1=champs1 from table where A=@A , B=@B,C=@C ,
j'obtiens un
temps d'execution de 300millisecondes
Il y a plus de travail à faire pour lire 3 données que 2 !
Si le select ne contient pas toute la cle primaire select @champs1=champs1 from table where A=@A , B=@B, (sans mettre
tous
les champs de l'indexe) j'obtiens 130 millisecondes
Donc parfaitement logique
L'essai que j'ai fait ne confirme pas cela Voici les resultats que j'obtiens 1) Temps avec codecinema noseance et tarif 300 (avec 3 donnees de la cle primaire) 2) Temps avec noseance et tarif 140 (avec 2 donnees) 3) Temps avec codecinema noseance et tarif 2eme recherche 333 (avec 3 donnees de la cle primaire) 4) Temps avec noseance tarif et prix 140 (avec 3 donnees dont une ne faisant pas partie de la cle primaire)
Postez votre Proc Stoc
Ci joint.
????? rien !!!
Merci pour votre reponse
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Michel Drot a écrit :
Bonjour a tous,
J'essaie de minimiser le temps d'execution d'une procedure stockee qui
met a
jour des tables apres verification des donnees et ai constate que le
temps
d'execution etait tres rallonge a cause d'un select....
Soit
une table contenant environ 100000 lignes avec une cle primaire sur
A+B+C
une procedure stockee qui contient un ordre select.
Un script execute la procedure stockee, et je teste la rapidite
d'execution
du select dans plusieurs cas.
Si le select contient toute la cle primaire
select @champs1=champs1 from table where A=@A , B=@B,C=@C ,
j'obtiens un
temps d'execution de 300millisecondes
Il y a plus de travail à faire pour lire 3 données que 2 !
Si le select ne contient pas toute la cle primaire
select @champs1=champs1 from table where A=@A , B=@B, (sans mettre
tous
les champs de l'indexe) j'obtiens 130 millisecondes
Donc parfaitement logique
L'essai que j'ai fait ne confirme pas cela
Voici les resultats que j'obtiens
1) Temps avec codecinema noseance et tarif 300 (avec 3 donnees de
la cle primaire)
2) Temps avec noseance et tarif 140 (avec 2 donnees)
3) Temps avec codecinema noseance et tarif 2eme recherche 333 (avec
3 donnees de la cle primaire)
4) Temps avec noseance tarif et prix 140 (avec 3 donnees dont une ne
faisant pas partie de la cle primaire)
Postez votre Proc Stoc
Ci joint.
????? rien !!!
Merci pour votre reponse
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
J'essaie de minimiser le temps d'execution d'une procedure stockee qui
met a
jour des tables apres verification des donnees et ai constate que le
temps
d'execution etait tres rallonge a cause d'un select....
Soit une table contenant environ 100000 lignes avec une cle primaire sur A+B+C une procedure stockee qui contient un ordre select.
Un script execute la procedure stockee, et je teste la rapidite
d'execution
du select dans plusieurs cas.
Si le select contient toute la cle primaire select @champs1=champs1 from table where A=@A , B=@B,C=@C ,
j'obtiens un
temps d'execution de 300millisecondes
Il y a plus de travail à faire pour lire 3 données que 2 !
Si le select ne contient pas toute la cle primaire select @champs1=champs1 from table where A=@A , B=@B, (sans mettre
tous
les champs de l'indexe) j'obtiens 130 millisecondes
Donc parfaitement logique
L'essai que j'ai fait ne confirme pas cela Voici les resultats que j'obtiens 1) Temps avec codecinema noseance et tarif 300 (avec 3 donnees de la cle primaire) 2) Temps avec noseance et tarif 140 (avec 2 donnees) 3) Temps avec codecinema noseance et tarif 2eme recherche 333 (avec 3 donnees de la cle primaire) 4) Temps avec noseance tarif et prix 140 (avec 3 donnees dont une ne faisant pas partie de la cle primaire)
Postez votre Proc Stoc
Ci joint.
????? rien !!!
Merci pour votre reponse
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************