Bonjour,
Avec SqlServer 2000 SP3 , j'ai ete confronte a un probleme bizare :
Je m'explique :
J'ai une procedure simple qui contient
un control avant une mise a jour dans la table
Si le control est basé sur une vue , la procedure s'execute avec un temps
de 10s , par contre si la procedure se base sur une requete ( la meme
requete sans passer par le vue )
la procedure s'execute avec un temps de moins d'une 1s .
Bizard
Quelqu'un a ete deja recontrer ce probleme ?
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
lionelp
Bonjour,
Pour commencer à comprendre ce qui se passe: dbcc freeproccache go set statistics profile on go exec proc_avec_vue param... go dbcc freeproccache go set statistics profile on go exec proc_sans_vue param... go
de cette manière tu vérifies si les plans d'exécution sont les mêmes, si les cardinalités estimées et réelles sont les mêmes. Si les plans sont les mêmes alors la différence de temps passé est dûe la compilation (peu probable) si les plans sont différents alors c'est la vue qui est mal résolue.
Cela permet d'orienter les recherches dans la base de connaissance.
Cordialement, LionelP "zarko" wrote:
Bonjour, Avec SqlServer 2000 SP3 , j'ai ete confronte a un probleme bizare : Je m'explique : J'ai une procedure simple qui contient un control avant une mise a jour dans la table
Si le control est basé sur une vue , la procedure s'execute avec un temps de 10s , par contre si la procedure se base sur une requete ( la meme requete sans passer par le vue ) la procedure s'execute avec un temps de moins d'une 1s . Bizard Quelqu'un a ete deja recontrer ce probleme ?
Merci d'avance pour toutes remponses.
Bonjour,
Pour commencer à comprendre ce qui se passe:
dbcc freeproccache
go
set statistics profile on
go
exec proc_avec_vue param...
go
dbcc freeproccache
go
set statistics profile on
go
exec proc_sans_vue param...
go
de cette manière tu vérifies si les plans d'exécution sont les mêmes, si les
cardinalités estimées et réelles sont les mêmes.
Si les plans sont les mêmes alors la différence de temps passé est dûe la
compilation (peu probable)
si les plans sont différents alors c'est la vue qui est mal résolue.
Cela permet d'orienter les recherches dans la base de connaissance.
Cordialement,
LionelP
"zarko" wrote:
Bonjour,
Avec SqlServer 2000 SP3 , j'ai ete confronte a un probleme bizare :
Je m'explique :
J'ai une procedure simple qui contient
un control avant une mise a jour dans la table
Si le control est basé sur une vue , la procedure s'execute avec un temps
de 10s , par contre si la procedure se base sur une requete ( la meme
requete sans passer par le vue )
la procedure s'execute avec un temps de moins d'une 1s .
Bizard
Quelqu'un a ete deja recontrer ce probleme ?
Pour commencer à comprendre ce qui se passe: dbcc freeproccache go set statistics profile on go exec proc_avec_vue param... go dbcc freeproccache go set statistics profile on go exec proc_sans_vue param... go
de cette manière tu vérifies si les plans d'exécution sont les mêmes, si les cardinalités estimées et réelles sont les mêmes. Si les plans sont les mêmes alors la différence de temps passé est dûe la compilation (peu probable) si les plans sont différents alors c'est la vue qui est mal résolue.
Cela permet d'orienter les recherches dans la base de connaissance.
Cordialement, LionelP "zarko" wrote:
Bonjour, Avec SqlServer 2000 SP3 , j'ai ete confronte a un probleme bizare : Je m'explique : J'ai une procedure simple qui contient un control avant une mise a jour dans la table
Si le control est basé sur une vue , la procedure s'execute avec un temps de 10s , par contre si la procedure se base sur une requete ( la meme requete sans passer par le vue ) la procedure s'execute avec un temps de moins d'une 1s . Bizard Quelqu'un a ete deja recontrer ce probleme ?