Programmation » PHP : Optimisation de script
PHP : Optimisation de script
Publié le 06/07/2006 @ 10:43:53,
Par johnkroBonjour 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 :
Dernière édition: 06/07/2006 @ 10:47:23
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");
}
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 ovhMalheureusement pour toi, MySQL ne supporte pas les sous-requêtes, donc non pas possible...
Maintenant il existe une piste à tenter :
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
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 cauetQuand 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.
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 piposinon plutôt que de se compliquer la vie :
set_time_limit(0);
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 dedeMalheureusement pour toi, MySQL ne supporte pas les sous-requêtes, donc non pas possible...
PHP : Optimisation de script
Publié le 06/07/2006 @ 11:59:30,
Par ovhDésolé, en effet apparemment maintenant c'est supporté
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 Par contre 2 bases du même SGBD là ça aurait marché
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 Par contre 2 bases du même SGBD là ça aurait marché
Je n'ai rien à voir avec www.ovh.com
PHP : Optimisation de script
Publié le 06/07/2006 @ 12:13:53,
Par zionSinon 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
Je suis le Roy
PHP : Optimisation de script
Publié le 06/07/2006 @ 13:26:25,
Par cauetEt le plus simple pour des truc de ce genre c'est d'utiliser php en bash sans serveur web
PHP : Optimisation de script
Publié le 06/07/2006 @ 13:40:49,
Par ovhEt quand t'as qu'un mutu...
Je n'ai rien à voir avec www.ovh.com
PHP : Optimisation de script
Publié le 06/07/2006 @ 13:46:19,
Par cauetGeneralement t'a pas d'accès Oracle sur un serveur mutu..
Donc il est forcément pas en mutu
Donc il est forcément pas en mutu
PHP : Optimisation de script
Publié le 06/07/2006 @ 13:57:17,
Par ovhPas con comme remarque
Mais ptêt qu'il est limité quand même
Dernière édition: 06/07/2006 @ 13:57:37
Mais ptêt qu'il est limité quand même
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 dedeC'est pas gentil de dire du gars qu'il est peut-être limité. C'est vous qui êtes limités d'abord
PHP : Optimisation de script
Publié le 07/07/2006 @ 10:23:07,
Par johnkroMySQL 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_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 ovhSur 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
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 Keepersplit 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
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 dedeTu dois être le seul à ne pas avoir compris ma phrase
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
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 ovhNan c'était po ironique
Depuis quand je suis ironique ??!! C'était vraiment pas le genre de la maison...
Depuis quand je suis ironique ??!! C'était vraiment pas le genre de la maison...
Je n'ai rien à voir avec www.ovh.com