|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Candidat au titre de Membre du Club
![]() Celine Delfuego Inscription : mai 2010 Messages : 36 ![]() |
Bonjour a tous,
Comme je découvre actuellement tous les mystères du php et des connexions ODBC j'en viens a chercher les limites ![]() Est il possible de manipuler deux connexions en même temps? Code :
Je m'explique: Dans une base j'ai une groOosse table qui contient les temps (parcourir cette table me mange énormément de temps), dans l'autre j'ai les informations permettant de faire la sélection, les deux tables peuvent etre liées par un chiffre (possible avec CR, mais tres lent) Pour le moment j'enregistre tous les temps dans un array en utilisant ma connexion 1: Code :
Code :
Ca marche mais je ne sais pas si c'est très optimisé, car enregistrer tous les temps prend du temps Alors que faire une sélection avec un INNER JOIN pourrait réduire le temps d'exécution de la recherche... non? (en meme temps je suis une faineante, donc je cherche les solutions les plus courtes) Alors est ce que par hasard un petit truc du genre ci dessous est envisageable??? Je ne sais pas si c'est tres clair... Merci d'avance, Sel |
||||||
|
|
00
|
|
|
#2 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2003 Messages : 15 ![]() |
Bonjour,
AMHA Clairement, si tu peux faire la même chose en une seule requête avec une jointure tu gagnera pas mal de temps. C'est le serveur SGBD qui fera tous le travail donc déjà des temps d'accès aux données largement plus rapide. Ensuite, si ton serveur SGBD et ton serveur Web ne sont pas sur la même machine tu gagnera du temps sur le transfert de données (le fetch peut prendre pas mal de temps) et tu limitera l'utilisation de ta bande passante réseau... Et comme tu es faineante, tu aura moins de code à taper |
|
|
00
|
|
|
#3 | |
|
Membre éclairé
![]() Inscription : octobre 2004 Messages : 235 ![]() |
Citation:
|
|
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Celine Delfuego Inscription : mai 2010 Messages : 36 ![]() |
Je pense que ca ne marche pas non plus, mais comme on dit l'espoir fait vivre... Donc si quelqu'un a une idee.
garfield_fr, je sais que ca me ferait gagner pas mal de temps... mais saurais tu comment faire?
|
|
|
00
|
|
|
#5 | |||||
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2003 Messages : 15 ![]() |
Citation:
Le SQL serait alors un truc du genre: Code :
Donc un truc du genre: Code :
|
|||||
|
|
00
|
|
|
#6 | |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2003 Messages : 15 ![]() |
Citation:
|
|
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 834 ![]() |
Ta problématique n'a à mon avis pas grand chose à voir avec PHP.
Si sur ton sgbd tu peux faire une requete sélectionnant des données sur deux bases différentes , tu dois pouvoir le faire en php et avec une seule connexion ODBC. Par exemple : Code :
SELECT b1.champs , b2.champs FROM base1.table1 b1 , base2.table2 b2 Sur deux serveur physique différents je ne sais pas si c'est techniquement possible. |
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Celine Delfuego Inscription : mai 2010 Messages : 36 ![]() |
Justement les deux bases sont sur des serveurs differents (d'ou des connexion odbc differentes: mots de passe, serveurs, login.... tout est different
Je me demande comment c'est possible avec Crystal Report si ca ne l'est pas en php... il passe par deux requêtes différentes? (comme tout stocker dans un tableau pour les résultats de la 1ere sélection et puis parcourir la 2eme base de données en sélectionnant avec les résultats de la 1ere requete (j'ai mal a la tete! ))Je me doute que c'est impossible... mais qui ne vérifie rien n'est sur de rien Donc double connections odbc pour n'avoir qu'une SEULE requete SQL (avec tous les INNER JOIN que vous voudrez, ca ce n'est pas un probleme)... est ce vraiment impossible? |
|
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2003 Messages : 15 ![]() |
C'est quoi le moteur de base de données ?
Par exemple, avec Oracle, tu pourrais faire un DATABASE LINK qui permet à une base B1 d'interrogé la base B2. Une fois le DBLINK installé, tu créé des synonymes de la table B2.T2 dans ta base B1 et tu accède alors à la table B2.T2 comme si elle était sur B1... Si tu n'est pas sous Oracle, regarde la doc pour voir si un tel liens est possible (ca peut s'appeler différemment). Sinon il te faut 2 connexions et faire le calcul via ton script PHP.... |
|
|
00
|
|
|
#10 |
|
Candidat au titre de Membre du Club
![]() Celine Delfuego Inscription : mai 2010 Messages : 36 ![]() |
mmm.... comment fait-on pour verifier ca? Je sais que mon driver est SQL server...
Pour le moment je suis partie sur un boucle avec du php car je ne voulais pas rester bloquee. |
|
|
00
|
|
|
#11 |
|
Membre chevronné
![]() Inscription : juillet 2003 Messages : 625 ![]() |
__________________
Le savoir est utile que s'il est partagé par tous. /(bb|[^b]{2})/ !sleep() ? array((string)) |
|
|
00
|
|
|
#12 |
|
Candidat au titre de Membre du Club
![]() Celine Delfuego Inscription : mai 2010 Messages : 36 ![]() |
Ce n'est toujours pas mon probleme, car si je fais une succession de requetes en jonglant entre les differentes bases je n'ai aucun problemes (elles ont des noms differents et ne s'ecrasent pas mutuellement)
Non, mon probleme etait essentiellement un probleme de faineantise et surtout de recherche d'optimisation: une seule requête sur deux connexions... faire un INNER JOIN entre deux bases situees sur deux serveurs différents... Mais je crois que c'est impossible, donc je vais fermer cette discussion et jongler entre mes requêtes avec des boucles dans tous les sens. Merci tout de même pour toutes les réponses que j'ai eu. ![]() Si quelqu'un a tout de meme d'autres idees je suis toujours preneuse ^^ Merciiiiiiiiii! |
|
|
00
|
|
|
#13 | |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2003 Messages : 15 ![]() |
Citation:
Ca m'étonnerais que SQL Server ne le fasse pas... petite recherche sur google: http://database.ittoolbox.com/groups...ver-tsql-52929 Perso je ferais le liens au niveau de la base principale et ensuite je créerais des synonym des table de la base distante dans la base pricnipale. du coup tu as juste a interroger la base principale en faisant les jointure sur le synonyms... |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com