Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

différence de temps de traitement explicable ?

1 réponse
Avatar
Benoit Damay
Bonjour à tous,

J'ai un problème sur une requête et je ne comprend pas

Si j'execute la requête suivante
" Select MIN(DATMAR) FROM ENTVTE WHERE CODMAR = 211152 "
J'obtiens un résultat au bout d'une dizaine de secondes environ


Par contre si je fais : (après déclarations)

SET @CODMAR = 211152
Select MIN(DATMAR) FROM ENTVTE WHERE CODMAR = @CODMAR

Je n'ai pas de résultat après plus de dix minutes ....

Là je cale alors si quelqu'un peut m'aider...

1 réponse

Avatar
Med Bouchenafa[MVP]
Le problème vient de la conception du plan de requête par SQL/Server
Dans le premier cas, il a toutes les billes pour concevoir un plan de
requête optimal
Dans le second cas, il ne connait pas la valeur de @CODMAR au moment de la
conception du plan
Pour vérifier tout cela, utilise l'analyseur de requêtes pour voir le plan
de requête utilisé
Une autre de façon de vérifier serait de créer une procédure stockée
CREATE PROC ps_Test @CODMAR int
AS
SELECT MIN(DATMAR) FROM ENTVTE
WHERE CODMAR = @CODMAR

EXEC ps_Test @CODMAR 211152

Tu verras qu'appelant par la suite cette procédure avec la valeur 211152,
elle s'execute aussi vite que ta première requête


--
Salutations
Med Bouchenafa
TETRASET
75015 Paris
"Benoit Damay" wrote in message
news:3f1e5f32$0$16665$
Bonjour à tous,

J'ai un problème sur une requête et je ne comprend pas

Si j'execute la requête suivante
" Select MIN(DATMAR) FROM ENTVTE WHERE CODMAR = 211152 "
J'obtiens un résultat au bout d'une dizaine de secondes environ


Par contre si je fais : (après déclarations)

SET @CODMAR = 211152
Select MIN(DATMAR) FROM ENTVTE WHERE CODMAR = @CODMAR

Je n'ai pas de résultat après plus de dix minutes ....

Là je cale alors si quelqu'un peut m'aider...