OVH Cloud OVH Cloud

Traitement Applicatif Versus Procedures Stoquées

3 réponses
Avatar
loccitan
Bonjour,
je dois editer des listes avec des champs calculés (pas triviaux).
J'ai plusieurs possibilité faire une procedures stoquées ou bien
retravailler le resultat d'une requete dans mon applicatif.

La premiere méthode est plus rapide en temp d'accès, mais elle a 2
inconvénients.
1) je n'ai pas le moyen de savoir ou elle en est du traitement et donc
pouvoir placer une jauge.
2) je ne sais pas simplement arreter si le traitement est trop long.

Existe t'il des solutions pour pallier à ces inconvénients.
Merci.

3 réponses

Avatar
Fred BROUARD
salut,

loccitan a écrit:
Bonjour,
je dois editer des listes avec des champs calculés (pas triviaux).
J'ai plusieurs possibilité faire une procedures stoquées ou bien
retravailler le resultat d'une requete dans mon applicatif.

La premiere méthode est plus rapide en temp d'accès, mais elle a 2
inconvénients.
1) je n'ai pas le moyen de savoir ou elle en est du traitement et donc
pouvoir placer une jauge.



il existe différents moyens pour ce faire.

Par exemple en code client réaliser une jauge par thread lancé en
parallèle jauge dont la mesure obéit à une règle asymptotique, par
exemple 50% du temps restant en toutes les 3 secondes.
Donc pas besoin de connaître la durée ni l'écoulement.

Autre possibilité jauge de type circulaire...

Mais pas plus que pour les requêtes tu as de moyen de savoir ou tu en es !
Or certaines requêtes sur de gros volume peuvent prendre quelques
minutes à quelques heures !!!


2) je ne sais pas simplement arreter si le traitement est trop long.



KILL processId


Existe t'il des solutions pour pallier à ces inconvénients.
Merci.





--
Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / 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
****************** mailto: ******************
Avatar
loccitan
> Par exemple en code client réaliser une jauge par thread lancé en
parallèle jauge dont la mesure obéit à une règle asymptotique, par
exemple 50% du temps restant en toutes les 3 secondes.
Donc pas besoin de connaître la durée ni l'écoulement.



=> comment fait on pour connaitre le temps restant ?


> 2) je ne sais pas simplement arreter si le traitement est trop long.

KILL processId



=> C'est un peu trop "destructeur" je souhaiterais simplement arreter
l'execution de la requete ou de ma procedure stoquée.
En fait faire le Annuler l'execution de la requete de l'analyseur de
requete.
Merci.
Avatar
lionelp
Bonjour,

Si ADO alors il y a CancelBatch. Dans ODBC il y a SQLCancel.

Cordialement,
LionelP

"loccitan" wrote in message
news:%23F$
> Par exemple en code client réaliser une jauge par thread lancé en
> parallèle jauge dont la mesure obéit à une règle asymptotique, par
> exemple 50% du temps restant en toutes les 3 secondes.
> Donc pas besoin de connaître la durée ni l'écoulement.

=> comment fait on pour connaitre le temps restant ?

>
> > 2) je ne sais pas simplement arreter si le traitement est trop long.
>
> KILL processId
>
=> C'est un peu trop "destructeur" je souhaiterais simplement arreter
l'execution de la requete ou de ma procedure stoquée.
En fait faire le Annuler l'execution de la requete de l'analyseur de
requete.
Merci.