|
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
|
| |
| |
| | | |
|
| | | | |
| | |
|