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 :

Lenteur avec certaine requete, mais pas tous le temps


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Lenteur avec certaine requete, mais pas tous le temps
    Bonjour,
    Je rencontre un problème sur une requête particulière (mais je ne pense pas que la requête en elle même soit en cause).
    Voici la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT  pays.id as pays_id, pays.nom as pays_nom, sites.id as site_id, sites.nom as site_nom, dus.edit, dus.user_id
    FROM "sites"
    INNER JOIN "R_operatingDivision_pays" as rops ON sites.R_operatingDivision_pays_id=rops.id AND rops.operatingDivision_id=5
    INNER JOIN "listePays" as pays ON rops.pays_id=pays.id
    LEFT OUTER JOIN "droitUserSite" as dus ON sites.id=dus.site_id and dus.user_id=1
    ORDER BY pays.nom,sites.nom
    Je poste sur cette section du forum car le soucis rencontré n'est pas systématique.
    Cette requête, exécuté sur le sql server management studio s'exécute en quelques mms mais depuis mon application php vas renvoyer un timeout plusieurs fois d'affiler, et au bout d'un moment "pouf" le tout s'execute bien, même après redémarrage du serveur, et au bout d'un moment, "bam" rebelote timeout, et la aussi le redémarrage serveur ne change rien.

    Je suis sous PHP 5.2.6, iis 5.1 (mais j'ai tester avec un iis7 et le problème est toujours là) et sql server 2005, j'utilise une connexion ODBC pour me connecter à ma base.

    Au départ j'ai penser qu'il y avait une sorte de cache, mais en faisant varier les paramètres et en faisant évoluer mes tables, ça n'a pas changer les temps d'acces.

    j'ai également recréé les index des tables pour voir si ça avait une influence, mais rien...

    Si l'un d'entre vous a une piste, là je sèche complètement.

    edit: je viens de tester en rebootant juste le iis, après un passage en mode lent, et ça a l'air d'avoir fait effet, du coup je le titille un peu pour le repasser en mode lent pour voir si c'est vraiment le redémarrage de iis qui a fait effet.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Je rencontre toujours le même soucis, si une personne à une idée sur le sujet, voir même juste une direction à prendre, je suis tout ouï.

  3. #3
    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
    Bienvenue dans un monde ou j'ai passé telement de temps à chercher de la doc que j'ai économiser du temps en basculant sur Mysql.

    il existe une fonctionnalité "EXPLAIN PLAN" pour les SQL-server. Il me semble qu'il faut appeler une procédure.

    Il est extrêmement possible que ton pilote odbc ne soit pas configuré de la bonne façon (cache désactivé ou gestion différente des transactions).

    Il se peut aussi qu'il y ait une limite du nombre de requête simultanée ton serveur et que ce oit ça qui bloque.

    Il se peut aussi que ta base s'arrête entre deux requetes et tu payes le redémarage de la base à chaque fois.

    sinon ça peut être un bete probleme réseau.

    tu as probablement lu quelque chose comme:
    http://www.sql-server-performance.co...alysis_p1.aspx
    http://www.sql-server-performance.co...istics_p1.aspx

    Vala pour le différenciel, reste à mettre des coups de canne par dessus.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Merci pour la réponse,
    j'aimerai bien aussi pouvoir changer de sgbd mais hélas ce n'est point possible pour le moment...

    Comme ma requête s'exécute correctement depuis le studio manager je n'ai pas penser à regarder le plan d'exécution, mais ça peut être une piste.

    Pour pilote odbc j'ai pas vu beaucoup de point de configuration dans PHP, je vais me renseigner la dessus aussi.

    En tout cas, merci, ça me permet de repartir dans mes recherche.

  5. #5
    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
    Le paln d'execution me semble la plus mauvaise piste.

    faudrait que tu me repetes les numéros de version et un peut de détail (2 serveurs, 1 machine de test).

    Sous windows, c'est pas php qui configure odbc, c'est windows qui configure la source de donnée, me demande pas comment, j'ai plus de windows sous la main.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    J'ai plusieurs serveur à disposition, la sur ma machine de dev j'ai une php5.2.6 et un iis 5.1 et un sql server 2005 sur un windows XP pro,

    sur le serveur de test j'ai un php 5.2.6, un iis (probablement 6, mais je peu pas vérifier là, il est down et y a personne pour le rallumer), un sql server 2005 le tout sur un windows server 2003.

    à chaque fois la base et le serveur web sont sur la même machine.

    Et bien évidement là je suis dans une phase ou mes requête passe comme une lettre à la poste (ça peut durée une semaine et changer sans prévenir...)
    le soucis a été repéré sur les 2 environnements.

  7. #7
    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
    je penche pour un serveur mal configuré.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/02/2012, 11h16
  2. Requete qui reprend les champs d'un formulaire, oui, mais pas tous
    Par Arttt dans le forum Requêtes et SQL.
    Réponses: 20
    Dernier message: 23/06/2008, 16h14
  3. Réponses: 2
    Dernier message: 22/01/2008, 02h55
  4. connection avec câble usb mais pas wifi
    Par Pau dans le forum Dépannage et Assistance
    Réponses: 4
    Dernier message: 22/01/2007, 16h40
  5. Mon script fonctionne avec un bouton, mais pas avec l'image!
    Par julien.63 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 12/04/2006, 16h26

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