Programmation » PHP : Optimisation de script
Catégorie:  
   
PHP : Optimisation de script
Publié le 06/07/2006 @ 10:43:53,
Par johnkro
Bonjour pour tout le monde,

j'ai un problème avec un temps maximal d'exécution dépassé. Le but de mon script est de copier des données Oracle d'une base distante dans ma base MySQL locale. Je dois utiliser des commandes OCI pour extraire les données issues de la base Oracle. J'effectue donc un SELECT des données de ma base Oracle dans le but de les lire puis j'insers ces données dans ma base MySQL (script en PS), mais forcément c'est long et le temps d'exécution maximale est dépassé... Je ne peux pas augmenter ce temps car je n'ai aucun droit sur le serveur! J'arrive à copier le dixième de ce que je devrais copier...

Serait-il possible d'effectuer une insertion à partir d'une selection, je m'explique. Peut-on faire une requête SQL du genre INSERT (dans ma base MySQL d'une autre commande SQL SELECT (les données de la base Oracle)) ?????

Merci d'avance de vos réponses, car la je suis bloqué et je n'ai plus vraiment de piste...

++


PS: Voici ma boucle while qui a un temps d'exécution beaucoup trop long :

$lala=ociparse($c,"SELECT * FROM ops WHERE DDATE='2453912'");

ociexecute($lala,OCI_DEFAULT);



while (ocifetch($lala)) {

$syscaa=ociresult($lala,2);

$gps=ociresult($lala,3);

$sgtqs=ociresult($lala,4);

$numes=ociresult($lala,5);

$nbr=ociresult($lala,6);

$sql="insert INTO historique (DDATE,SYSCAA,GPS,SGTQS,NUMES,NBR) VALUES ('ociresult($lala,1)','$syscaa','$gps','$sgtqs','$numes','$nbr')";

$res = mysql_query($sql) or die ("requete incorrecte au niveau des statistiques du jour");

}

Dernière édition: 06/07/2006 @ 10:47:23
   
PHP : Optimisation de script
Publié le 06/07/2006 @ 10:56:07,
Par ovh
Malheureusement pour toi, MySQL ne supporte pas les sous-requêtes, donc non pas possible... :ohwell:

Maintenant il existe une piste à tenter :
php_ini_set("max_execution_time", "3600");

Cette fonction permet donc de modifier à la volée des paramètres de config uniquement pour ta page php en cours.

http://be2.php.net/manual/en/ref.info.php#ini.max-execution-time

Dernière édition: 06/07/2006 @ 10:56:42
Je n'ai rien à voir avec www.ovh.com
   
PHP : Optimisation de script
Publié le 06/07/2006 @ 11:11:45,
Par cauet
Quand on fait des programmes comme cela, on utilise pas PHP sur serveur Apache.
Tu lance php en bash. /usr/bin/php5 /home/user/script.php

Là, aucun temps d'execution maximal.
C'est toute une autre conception du programme, mais ca peux être puissant.

Je gère des tas de truc comme ça.
   
PHP : Optimisation de script
Publié le 06/07/2006 @ 11:34:26,
Par pipo
sinon plutôt que de se compliquer la vie :

set_time_limit(0);
./Make sex | ( . ) ( . ) | Je n'ai rien à voir avec Zion l'informaticien gay
   
PHP : Optimisation de script
Publié le 06/07/2006 @ 11:50:59,
Par dede
Malheureusement pour toi, MySQL ne supporte pas les sous-requêtes, donc non pas possible... :ohwell:

:heink:
   
PHP : Optimisation de script
Publié le 06/07/2006 @ 11:59:30,
Par ovh
Désolé, en effet apparemment maintenant c'est supporté :oops: :cupra:
http://dev.mysql.com/doc/refman/5.0/fr/insert-select.html

De toute façon ça ne répond pas à la question puisqu'on travaille sur 2 SGBD différents, j'ai été trop vite dans mon raisonnement :joce: Par contre 2 bases du même SGBD là ça aurait marché :oh:
Je n'ai rien à voir avec www.ovh.com
   
PHP : Optimisation de script
Publié le 06/07/2006 @ 12:13:53,
Par zion
sinon plutôt que de se compliquer la vie :

set_time_limit(0);


Sinon il faut pas oublier le

apache_reset_timeout ( )


car après 300s sans rien afficher, Apache va killer le process de lui même sans demander l'avis de PHP. Donc soit tu fais un reset de temps à autre, soit tu affiches un caractère bidon juste pour qu'Apache soit content :dawa:
Je suis le Roy :ocube:
   
PHP : Optimisation de script
Publié le 06/07/2006 @ 13:26:25,
Par cauet
Et le plus simple pour des truc de ce genre c'est d'utiliser php en bash sans serveur web :itm:
   
PHP : Optimisation de script
Publié le 06/07/2006 @ 13:40:49,
Par ovh
Et quand t'as qu'un mutu... :dtc:
Je n'ai rien à voir avec www.ovh.com
   
PHP : Optimisation de script
Publié le 06/07/2006 @ 13:46:19,
Par cauet
Generalement t'a pas d'accès Oracle sur un serveur mutu..
Donc il est forcément pas en mutu :itm:
   
PHP : Optimisation de script
Publié le 06/07/2006 @ 13:57:17,
Par ovh
Pas con comme remarque :petrus:

Mais ptêt qu'il est limité quand même :wink:

Dernière édition: 06/07/2006 @ 13:57:37
Je n'ai rien à voir avec www.ovh.com
   
PHP : Optimisation de script
Publié le 06/07/2006 @ 17:10:15,
Par dede
C'est pas gentil de dire du gars qu'il est peut-être limité. C'est vous qui êtes limités d'abord :grin:
   
PHP : Optimisation de script
Publié le 07/07/2006 @ 10:23:07,
Par johnkro
MySQL 4.1 supporte les requêtes imbriquées d'après ce que je sais, mais je suis en 3.23 donc c'est une solution à abandonner...

php_ini_set("max_execution_time", "3600") ne fonctionne pas, car je ne suis pas administrateur du serveur. La commande set_limit_time() est désactivée côté serveur. Ce sont encore 2 pistes qui s'envolent, mais de toute façon je cherche plutôt à optimiser mon script ou à trouver une solution qui soit plus rapide...

Sur le fait que je sois limité ou pas, c'est effectivement pas très gentil. Certes je ne suis pas un grand informaticien, mais à ce que je sache 'ovh" tu n'as inventé la lumière... J'ai surement des compétences dans d'autres domaines que toi tu n'as pas! Je demande de l'aide sur un forum, ce n'est pas pour recevoir ce genre de remarque...

Comment pourrais-je lancer automatiquement un script bash à partir d'un code PHP, car le téléchargement de ces données s'effectue dans une application PHP. Car imaginons que je lance un script PHP sur le serveur (je ne pense pas avoir les droits de toute façon...), j'effectuerai quelle genre d'action dans ce script? extraction de données dans un fichier?
   
PHP : Optimisation de script
Publié le 07/07/2006 @ 10:26:49,
Par ovh
Sur le fait que je sois limité ou pas, c'est effectivement pas très gentil. Certes je ne suis pas un grand informaticien, mais à ce que je sache 'ovh" tu n'as inventé la lumière... J'ai surement des compétences dans d'autres domaines que toi tu n'as pas! Je demande de l'aide sur un forum, ce n'est pas pour recevoir ce genre de remarque...

Tu dois être le seul à ne pas avoir compris ma phrase :roll:
Pour ton information, la réplique de dede était ironique, car il a bien compris, lui, que je ne parlais bien évidemment pas de limitation de cerveau mais de limitation de ton hébergement !!!
Je n'ai rien à voir avec www.ovh.com
   
PHP : Optimisation de script
Publié le 07/07/2006 @ 10:34:19,
Par Keeper
split ta requête en plusieurs requête

du style : ID entre 0 et 1000, puis tu affiches quelque chose (par exemple la plage d'id que tu as traitée) et tu incrémentes par pas de 1000.

Si ça plante à un moment, tu reprends à la dernière plage d'ID affichée
   
PHP : Optimisation de script
Publié le 07/07/2006 @ 14:54:04,
Par dede

Tu dois être le seul à ne pas avoir compris ma phrase :roll:
Pour ton information, la réplique de dede était ironique, car il a bien compris, lui, que je ne parlais bien évidemment pas de limitation de cerveau mais de limitation de ton hébergement !!!


Nan c'était po ironique :ddr555:
Depuis quand je suis ironique ??!! C'était vraiment pas le genre de la maison...
   
PHP : Optimisation de script
Publié le 07/07/2006 @ 15:04:37,
Par ovh
Nan c'était po ironique :ddr555:
Depuis quand je suis ironique ??!! C'était vraiment pas le genre de la maison...

:boidleau:
Je n'ai rien à voir avec www.ovh.com
Répondre - Catégorie:  
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?