IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] regrouper les requêtes en 1 fichier include ?


Sujet :

PHP & Base de données

  1. #1
    Membre actif Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 707
    Points : 215
    Points
    215
    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...

  2. #2
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  3. #3
    Membre averti Avatar de Joe Le Mort
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 392
    Points : 388
    Points
    388
    Par défaut
    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

  4. #4
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    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.

  5. #5
    Membre averti Avatar de Joe Le Mort
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 392
    Points : 388
    Points
    388
    Par défaut
    ah pardon, j'avais pas vu : grosse application

  6. #6
    Membre actif Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 707
    Points : 215
    Points
    215
    Par défaut
    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 !

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    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 :
    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.

  8. #8
    Membre averti

    Profil pro
    En reconversion
    Inscrit en
    Novembre 2007
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Novembre 2007
    Messages : 180
    Points : 351
    Points
    351
    Par défaut
    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.

  9. #9
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    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 : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    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.

  10. #10
    Membre régulier
    Homme Profil pro
    apprenti
    Inscrit en
    Décembre 2011
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : apprenti
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 212
    Points : 100
    Points
    100
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    require('requetes.php');
    mysql_query($LeNomDeLaRequete,$ChaineDeConnexion);
    Qu'aurais je pu oublier ?

  11. #11
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    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??

    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().

Discussions similaires

  1. Possible de regrouper les requêtes ?
    Par ninikkhuet dans le forum Requêtes
    Réponses: 11
    Dernier message: 03/05/2010, 16h08
  2. LINQ to SQL] Tracer les requêtes SQL d'Insert/Update/Delete
    Par annalady dans le forum Accès aux données
    Réponses: 5
    Dernier message: 30/07/2009, 10h17
  3. [SQL] Regrouper plusieurs requêtes
    Par matlox dans le forum Développement
    Réponses: 6
    Dernier message: 02/01/2009, 10h23
  4. Bloc PL/SQL intégrant les requêtes SQL
    Par isi241 dans le forum PL/SQL
    Réponses: 11
    Dernier message: 27/08/2008, 18h40
  5. sql: regrouper les critères en une seule ligne.
    Par matybouch dans le forum Access
    Réponses: 1
    Dernier message: 28/06/2007, 15h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo