Accelerer les requètes sql (newby) - Perl - Programmation
Marsh Posté le 29-10-2002 à 19:55:05
Nico5779 a écrit a écrit : Bonjour, Je suis en train de créer une application en perl(cgi) qui se connecte a une db oracle, seulement il met un temps bete a se connecte a la base,dans sql plus aussi donc je pense que c'est normal,mais je voudrais savoir si il est possible de se connecter une seule fois a la base pour toute l'application,au lieu de devoir se reconncter a toutes les pages? et aussi comment on peut ameliorer la vitesse de connexion a la base (au niveau de oracle)? Merci d'avance pour vos reponse. |
Je n'y connais pas grand chose en Perl, ni en db Oracle, par contre je sais qu'avec MySQL & PostgreSQL, tu peux utiliser des connexions SQL persistantes.
Et en ce qui concerne l'amélioration de la vitesse de connexion à la bdd, réfère toi à la doc, chuis sûr que tu peux assigner des paramètres pour limiter telle ou telle fonction.
Marsh Posté le 29-10-2002 à 20:19:48
Merci pour ta reponse helix
Je viens d'installer un Module , Apache:: DBI ,avec comme description 'iniatate a persitent database connection'
mais je comprend vraiment pas comment ca marche.
QQn peut t'il m'expliquer ou me renseigner de la doc sur ce module (en francais si possible)?,j 'ai pas trouver grand chose sur google,je cherche encore mais si vous pouvez m'aiguiller ca serait super.
Merci d'avance
Marsh Posté le 29-10-2002 à 20:58:11
La documentation doit se trouver sur le site où t'as téléchargé le module.
Marsh Posté le 29-10-2002 à 21:43:35
dans 99,99% des cas tu trouvera la doc sur le site http://www.cpan.org
Marsh Posté le 29-10-2002 à 22:42:54
ok c bon ,
g trouver sur le site que tu as citer (ki est le meme que celui ou je l ai telecharger )
mais apperement y fo modifier la config d'apache.
Je verrai ca demain, merci a vous deux en tout cas
Marsh Posté le 30-10-2002 à 08:55:10
Nico5779 a écrit a écrit : Bonjour, Je suis en train de créer une application en perl(cgi) qui se connecte a une db oracle, seulement il met un temps bete a se connecte a la base,dans sql plus aussi donc je pense que c'est normal,mais je voudrais savoir si il est possible de se connecter une seule fois a la base pour toute l'application,au lieu de devoir se reconncter a toutes les pages? et aussi comment on peut ameliorer la vitesse de connexion a la base (au niveau de oracle)? Merci d'avance pour vos reponse. |
Tu peux bien sûr te connecter une seule fois à ta base Oracle, tu n'as ensuite plus qu'à tester la connexion via un simple ping dans la méthode DBI: Oracle
Marsh Posté le 30-10-2002 à 09:08:54
Bon, j'y capte rien au CGI mais voici qq trucs que j'ai développé y a keke temps, si ça peut te servir
Modules à rajouter dans ton script Perl :
Code :
|
Connexion à une BDD Oracle :
Code :
|
Test qu'une connexion Oracle est toujours active :
Code :
|
Cette fonction te retourne 1 si serveur toujours actif, 0 sinon. Tu peux donc employer cette fonction un peu partout dans ton code avant de faire une manip sous Oracle.
Mais je le répète : tu as CGI par-dessus tout ça, je ne sais pas si ma méthode fonctionne avec CGI.
Marsh Posté le 30-10-2002 à 12:22:15
non je n'utilise pas cgi ,mais un autre module que g ecrit et qui donne presque le meme resultat,mais ou les documents sont ecrit en xhtml strict.
mais meme avec cgi je vois pk ta methode ne marcherait pas.
Je v tester si je m'en sort pas avec la config d apache,paske ca me sera utile si j'appelle une fonction d'un autre module qui utilise dbi, dans un module qui appelle aussi dbi, je voudrai pas qu'il se connecte plus d une fois par page
Merci @++
Marsh Posté le 29-10-2002 à 19:49:54
Bonjour,
Je suis en train de créer une application en perl(cgi) qui se connecte a une db oracle,
seulement il met un temps bete a se connecte a la base,dans sql plus aussi donc je pense que c'est normal,mais je voudrais savoir
si il est possible de se connecter une seule fois a la base pour toute l'application,au lieu de devoir se reconncter a toutes les pages?
et aussi comment on peut ameliorer la vitesse de connexion a la base (au niveau de oracle)?
Merci d'avance pour vos reponse.