PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Oracle, 70'000 lignes, 3h de traitement !!
Oracle, 70'000 lignes, 3h de traitement !!
Iniciado por yves.tschachtli, jul., 29 2005 7:10 PM - 2 respostas
Publicado em julho, 29 2005 - 7:10 PM
Bonjour,
C'est la 1ère fois que je traite une base Orable .. sans accès natif !
Cependant, je trouve tout de même incroyable qu'il me faut 3h sur un
serveur Oracle 8, 1Go RAM, P4 3Ghz pour executer ce code :

ClientSafirHF est une base HF
Req_Factures est basé sur un fichier Oracle

HLitPremier(ClientsSafirHF,DRELNUM)
TANTQUE PAS HEnDehors(ClientsSafirHF)

HExécuteRequête(Req_Factures,hRequêteDéfaut,Annee,ClientsSafirHF.DRELNUM)
//si HNbEnr(Req_Factures,hEtatTous) > 0 alors
HLitPremier(Req_Factures)
SI HEnDehors(Req_Factures) = Vrai ALORS
ClientsSafirHF.ClientActif = Faux
SINON
ClientsSafirHF.ClientActif = Vrai
FIN

HModifie(ClientsSafirHF)
HLitSuivant(ClientsSafirHF)
FIN

Est-ce que quelqu'un a une proposition à me faire ??

Merci
Yves
Publicado em julho, 29 2005 - 7:54 PM
"Yves T" <yves.tschachtli@ncmedia.ch> a écrit dans le message de
news:42ea4704$1_3@news.bluewin.ch...
Bonjour,
C'est la 1ère fois que je traite une base Orable .. sans accès natif !
Cependant, je trouve tout de même incroyable qu'il me faut 3h sur un
serveur Oracle 8, 1Go RAM, P4 3Ghz pour executer ce code :


8.0.6 ou 8.1.7 ?

ClientSafirHF est une base HF
Req_Factures est basé sur un fichier Oracle

HLitPremier(ClientsSafirHF,DRELNUM)
TANTQUE PAS HEnDehors(ClientsSafirHF)

HExécuteRequête(Req_Factures,hRequêteDéfaut,Annee,ClientsSafirHF.DRELNUM)
//si HNbEnr(Req_Factures,hEtatTous) > 0 alors
HLitPremier(Req_Factures)
SI HEnDehors(Req_Factures) = Vrai ALORS
ClientsSafirHF.ClientActif = Faux
SINON
ClientsSafirHF.ClientActif = Vrai
FIN

HModifie(ClientsSafirHF)
HLitSuivant(ClientsSafirHF)
FIN

Est-ce que quelqu'un a une proposition à me faire ??


oui si tu nous donnes la requete de select sur les Factures :-) ainsi que le
plan associé (si tu ne l'as pas les indexes) les stat oracle aussi ce serait
bien

en première lecture je dirais qu'il te manque un index sur la colonne de la
table factures qui utilise DRELNUM.

Merci
Yves


--
Emmanuel Lecoester
Publicado em agosto, 01 2005 - 11:53 AM
Par expérience je pense que le problème de lenteur vient de l'utilisation
répétée de HExécuteRequête qui est gourmant en temps de connexion. Si
j'étais toi, j'essaierai d'exécuter qu'une seule requete en lui passant une
liste de paramètres (en utilisant "in" en sql) au lieu d'exécuter x fois la
requete.
Je ne pense pas que le problème de lenteur vienne d'oracle

Bonne chance

B N J

"Yves T" <yves.tschachtli@ncmedia.ch> a écrit dans le message de
news:42ea3c16$1@news.pcsoft.fr...

Bonjour,
C'est la 1ère fois que je traite une base Orable .. sans accès natif !
Cependant, je trouve tout de même incroyable qu'il me faut 3h sur un
serveur Oracle 8, 1Go RAM, P4 3Ghz pour executer ce code :

ClientSafirHF est une base HF
Req_Factures est basé sur un fichier Oracle

HLitPremier(ClientsSafirHF,DRELNUM)
TANTQUE PAS HEnDehors(ClientsSafirHF)

HExécuteRequête(Req_Factures,hRequêteDéfaut,Annee,ClientsSafirHF.DRELNUM)
//si HNbEnr(Req_Factures,hEtatTous) > 0 alors
HLitPremier(Req_Factures)
SI HEnDehors(Req_Factures) = Vrai ALORS
ClientsSafirHF.ClientActif = Faux
SINON
ClientsSafirHF.ClientActif = Vrai
FIN

HModifie(ClientsSafirHF)
HLitSuivant(ClientsSafirHF)
FIN

Est-ce que quelqu'un a une proposition à me faire ??

Merci
Yves