Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/08/2006, 08h34   #1
Membre habitué
 
Avatar de grinder59
 
Inscription : septembre 2005
Messages : 514
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 514
Points : 128
Points : 128
Par défaut [SQL] regrouper les requêtes en 1 fichier include ?

Bonjour,

j'ai une grosse application avec pas mal de fichiers contenant des requêtes et j'envisage de regrouper ces requêtes dans un seul et même gros fichier que j'incluerai dans les différents scripts.

Néanmoins, je me pose la question suivante. Au niveau temps d'exécution, la fontion include sur un gros fichier ne ralentit-elle pas les pages ?

Merci de vos conseils...
grinder59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2006, 09h14   #2
Membre émérite
 
Avatar de alain31tl
 
Alain
Inscription : novembre 2005
Messages : 897
Détails du profil
Informations personnelles :
Nom : Alain
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2005
Messages : 897
Points : 910
Points : 910
Salut

Qu'entends-tu par "gros fichier" ?
Ensuite, pourquoi ne pas tester son temps d'exécution pour être rassuré...justement :

page_de_test.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
 
 
<?
// En entête de ce fichier
$temps = microtime();
$temps = explode(' ', $temps);
$debut = $temps[1] + $temps[0];
 
//...........................
 
include ('ton_fameux_fichier.php');
 
//............................
 
// en bas de page ( à la fin du script)
 
$temps = microtime();
$temps = explode(' ', $temps);
$fin = $temps[1] + $temps[0];
 
// Temps d'exécution
echo 'Page exécutée en '.round(($fin - $debut),6).' secondes.';
?>
D'autre part, je ne connais pas l'objet et le contenu de ton applic, mais personnellement je procéde à l'inverse quand je développe mes procédés.
C'est à dire que je crée tous mes scripts séparemment, et je les appelle de façon individuelle et en fonction des besoins dans une partition unique.
Mais bon, tu as sans doute tes raisons.
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
alain31tl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2006, 17h50   #3
Membre éclairé
 
Avatar de Joe Le Mort
 
Inscription : avril 2006
Messages : 392
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 392
Points : 361
Points : 361
Envoyer un message via MSN à Joe Le Mort
Citation:
Envoyé par grinder59
Bonjour,
Néanmoins, je me pose la question suivante. Au niveau temps d'exécution, la fontion include sur un gros fichier ne ralentit-elle pas les pages ?
Non pas de probleme de temps de réponse.
c'est instantané !

exemple un fichier function_include.php qui contient plusieurs requete sql :

$sql1 = ...
$sql2=....

Apres a toi de bien les nommer pour les retrouver facilement
Joe Le Mort est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2006, 18h01   #4
Membre émérite
 
Avatar de alain31tl
 
Alain
Inscription : novembre 2005
Messages : 897
Détails du profil
Informations personnelles :
Nom : Alain
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2005
Messages : 897
Points : 910
Points : 910
Citation:
Envoyé par Joe Le Mort
Non pas de probleme de temps de réponse.
c'est instantané !

Il existe des solutions pour optimiser les scripts lourds de façon à les alléger pour une meilleure fluidité des résultats, ce n'est pas pour rien.
Un script comprenant une requête et un autre en comprenant une vingtaine n'ont pas du tout le même temps de réponse, et c'est tellement logique.
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
alain31tl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2006, 18h07   #5
Membre éclairé
 
Avatar de Joe Le Mort
 
Inscription : avril 2006
Messages : 392
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2006
Messages : 392
Points : 361
Points : 361
Envoyer un message via MSN à Joe Le Mort
ah pardon, j'avais pas vu : grosse application
Joe Le Mort est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2006, 08h45   #6
Membre habitué
 
Avatar de grinder59
 
Inscription : septembre 2005
Messages : 514
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 514
Points : 128
Points : 128
merci pour tous vos conseils...

mon but était de pouvoir rassembler au même "endroit" toutes les requêtes afin de les administrer facilement en cas de nécessité.

maintenant je ne voulais pas non plus créer un énorme fichier qui alourdirait mes pages.

Donc, je vais couper la poire en deux. Je vais créer un répertoire requête dans lequel je mettrai un ensemble de fichier contenant mes requêtes, les noms de fichiers contenant ces requêtes étant le nom du script dans laquelle elle est utilisée. Et cela dans le but évident de ne pas alourdir les pages.

Bon faut encore que je vois comment traiter le cas de requêtes utilisées dans 2 scripts différents, mais c'est un autre problème.

En tous cas... merci !
grinder59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 11h24   #7
Invité de passage
 
Inscription : juillet 2010
Messages : 6
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 6
Points : 2
Points : 2
Le thread date un peu mais je place quand même une réponse histoire d'aider ceux qui tombent dessus.

Une info qui vient de ici.

Comme ils le soulignent à juste titre. L'utilisation abusive de "include" génère des accès disques supplémentaires pour aller lire les fichiers référencés par "include" sur le serveur.
Or on sait qu'à l'échelle de l'électronique :
Citation:
La mémoire vive a un temps d'accès de quelques dizaines ou centaines de nanosecondes tandis que celui du disque dur est de quelques millisecondes.
Source : Wikipedia

Soit un rapport de 1/10'000 à 1/100'000 !

A priori on peut se dire que ca affecte beaucoup l'efficacité de notre code.
Cependant il faut ramener tout ça à l'échelle humaine. C'est à dire la seconde.

Donc à moins d'avoir du code php lourd, avec des dizaines de milliers d'utilisateurs se connectant à là minute, on peut négliger ça.
Cet aspect est donc addressé aux sites style ebay ou jeux vidéo en ligne.
Jacknight est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2011, 14h18   #8
Membre confirmé
 
Inscription : novembre 2007
Messages : 134
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 134
Points : 213
Points : 213
Bonjour,
L'objectif ici étant de pouvoir maintenir plus aisément toutes les requêtes, je pencherai plus vers l'utilisation de procédures stockées. Tout est ainsi au même endroit et en plus on y gagne en sécurité et en performance.
Ca vaut vraiment le coup d'apprendre à les utiliser, plutôt que de mettre tout plein de code sql dans des fichiers php, le code est pré-compilé, les injections sql sont rejetées, etc, que des avantages, c'est juste plus compliqué à faire au début.
patic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/03/2011, 14h55   #9
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
ceci dit, php, je crois peut mettre en cache le résultat de la compilation d'un fichier... (ou tu peux directement utiliser la version compilée du script).

Honnêtement même si tes requetes sont toutes stockee sous forme de chaine, peut être qu'on voit un impact sur l'empreinte mémoire mais j'ai jamais constaté une différence notable à 10000 lignes près.
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2012, 17h15   #10
Invité régulier
 
Homme
Étudiant
Inscription : décembre 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Morbihan (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2011
Messages : 24
Points : 5
Points : 5
Désolé de ressortir ce sujet de l'oubli, mais je suis exactement en train d'effectuer la modification sur mon site (regrouper toutes les requêtes SQL sur le même fichier). Cependant, quand on a une requête avec une donnée externe et que celle ci n'est pas présente sur la page, cela marque une erreur.
En fait dans mon site, j'ai une page d'inscription (dans laquelle la variable de session est nulle puisque tout le monde peut s'inscrire.) De ce fait, lorsque je me positionne sur cette page, il m'indique que la variable _SESSION n'est pas déclarée.
Sur chaque page, je récupère les requêtes avec un
Code :
1
2
require('requetes.php');
mysql_query($LeNomDeLaRequete,$ChaineDeConnexion);
Qu'aurais je pu oublier ?
planeurbret est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2012, 13h00   #11
Membre chevronné
 
Avatar de Marc3001
 
Homme
Ingénieur développement logiciels
Inscription : février 2008
Messages : 430
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : février 2008
Messages : 430
Points : 682
Points : 682
Citation:
Envoyé par planeurbret Voir le message
Cependant, quand on a une requête avec une donnée externe et que celle ci n'est pas présente sur la page, cela marque une erreur.
Qui est??

Citation:
En fait dans mon site, j'ai une page d'inscription (dans laquelle la variable de session est nulle puisque tout le monde peut s'inscrire.) De ce fait, lorsque je me positionne sur cette page, il m'indique que la variable _SESSION n'est pas déclarée.
Avant d'utiliser les variables de session via $_SESSION, il faut utiliser session_start().
__________________
Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre.

Linus Torvalds
Marc3001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h27.


 
 
 
 
Partenaires

Hébergement Web