Frage zu Maximum execution time

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Frage zu Maximum execution time

    Hi , ich muss euch nochma nerven (Abers wird sich legen glaub ich )

    Und zwar bekomme ich wenn ich bei meinem script einen "Maximum execution time of 30 seconds exceeded " Fehler in jener Zeile:

    PHP-Code:
    $resultset=mysql_query($SQL_statement) or die(mysql_error()); 
    Kann ich mir ausgeben lassen woran es genau liegt dass es zur Zeitüberschreitung kommt. Ich habe das ganze nämlich in einer Access Datenbank auch, da gehts in 1-2 sekunden, und ein anderes script was genauso aufgebaut ist mit einer ähnlichen Select Anweisung funktioniert tadellos. Ich habe zwar gelesen dass man die Zeit die maximal gewartet wird verlängern kann aber das ist bei mir nicht Sinn der Sache, da das andere Script auch schnell funktioniert.

    Falls es was hilft.. hier die Select Anweisungen:

    1. Hier funktioniert es nicht:
    PHP-Code:
    $SQL_statement="SELECT Switchold.Stack, Switchold.Name, Switchold.Unit, Hausverkabelung.SLOT, Hausverkabelung.PORT,
     DAERaum.ANSCHLUSS, Switchold.Typ, Switchold.`IP-Adresse`, Hausverkabelung.STANDORT, Hausverkabelung.KONTAKT, 
    Hausverkabelung.`ANSCHL-WEG`, Hausverkabelung.`Ziel-Adresse`, DAERaum.FOLGEANSCHLUSS, Hausverkabelung.`10-Mb-FD`, 
    Hausverkabelung.`100-Mb-HD`, Hausverkabelung.`100-Mb-FD`, Hausverkabelung.`1-Gb-FD`, Hausverkabelung.`MODEM-NUMMER`, 
    Hausverkabelung.SLOT, Hausverkabelung.Disabled, Hausverkabelung.Bemerkung, Hausverkabelung.`Stack-IP`, 
    DAERaum.RAUM, DAERaum.`ANSCHLUSS-TYP`, Hausverkabelung.`MAC-ADRESSE_NetKomp`, Hausverkabelung.`MAC-ADRESSE_Node`
    FROM (Switchold RIGHT JOIN Hausverkabelung ON Switchold.Name = Hausverkabelung.SWITCH) RIGHT JOIN DAERaum ON Hausverkabelung.Kennummer = DAERaum.HVKkennum
    WHERE  Switchold.STACK='"
    .$_POST['stackname']."'"
    Hier funktionierts:
    PHP-Code:
    $SQL_statement="SELECT Hausverkabelung.Kennummer, 
    Hausverkabelung.SLOT, Hausverkabelung.SWITCH, Hausverkabelung.Kabelnummer, Switchold.Unit, Switchold.Typ, 
    Switchold.Stack, Switchold.`IP-Adresse`, Hausverkabelung.SLOT, Hausverkabelung.PORT, Geräteliste.PCNAME, Hausverkabelung.STANDORT,
     Hausverkabelung.KONTAKT, Hausverkabelung.`ANSCHL-WEG`, Hausverkabelung.`Ziel-Adresse`, DAERaum.ANSCHLUSS, 
    DAERaum.FOLGEANSCHLUSS, Hausverkabelung.`10-Mb-HD`, Hausverkabelung.`10-Mb-FD`, Hausverkabelung.`100-Mb-HD`,
     Hausverkabelung.`100-Mb-FD`, Hausverkabelung.`1-Gb-FD`, Hausverkabelung.`MODEM-NUMMER`, Hausverkabelung.Disabled, 
    Hausverkabelung.Bemerkung, Hausverkabelung.`Stack-IP`, DAERaum.RAUM, DAERaum.`ANSCHLUSS-TYP`, Hausverkabelung.
    `MAC-ADRESSE_NetKomp`, Hausverkabelung.`MAC-ADRESSE_Node`, Geräteliste.PCNAME
    FROM Switchold RIGHT JOIN ((Geräteliste RIGHT JOIN Hausverkabelung ON Geräteliste.MACAdresse = Hausverkabelung.`MAC-ADRESSE_Node`) LEFT JOIN 
    DAERaum ON Hausverkabelung.Kennummer = DAERaum.HVKkennum) ON Switchold.Name = Hausverkabelung.SWITCH
    WHERE Hausverkabelung.SWITCH='"
    .$_POST['switchname']."'"

    Ich sehe da keinen großartigen Unterschied an dem es liegen könnte. Wär nett wenn mir jemand sagen könnte ob das möglich ist sich den genauen Grund liefern zu lassen (oder mir sagen wo der Fehler ist )

    thxle im vorraus
    Martin

  • #2
    ich würde dir empfehlen, dass du sowas in sql postest... *VERSCHIEB*


    und dann solltest du mal deine queries ein wenig übersichtlicher gestalten. so mit einrücken und so.

    vorher schaue ich mir das nicht an. ich wollte meine augen nämlich nicht kaputt machen.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Hmm, okay hast recht..etwas unübersichtlich wenn mans nicht permanent sieht


      Das was nicht funktioniert:
      PHP-Code:
      $SQL_statement="SELECT 
      Switchold.Stack, 
      Switchold.Name, 
      Switchold.Unit, 
      Switchold.Typ, 
      Switchold.`IP-Adresse`, 

      DAERaum.ANSCHLUSS, 
      DAERaum.FOLGEANSCHLUSS, 
      DAERaum.RAUM, 
      DAERaum.`ANSCHLUSS-TYP`, 

      Hausverkabelung.SLOT, 
      Hausverkabelung.PORT,
      Hausverkabelung.STANDORT, 
      Hausverkabelung.KONTAKT, 
      Hausverkabelung.`ANSCHL-WEG`, 
      Hausverkabelung.`Ziel-Adresse`, 
      Hausverkabelung.`10-Mb-FD`, 
      Hausverkabelung.`100-Mb-HD`, 
      Hausverkabelung.`100-Mb-FD`,
      Hausverkabelung.`1-Gb-FD`,
      Hausverkabelung.`MODEM-NUMMER`, 
      Hausverkabelung.Disabled, 
      Hausverkabelung.Bemerkung, 
      Hausverkabelung.`Stack-IP`, 
      Hausverkabelung.`MAC-ADRESSE_NetKomp`,
      Hausverkabelung.`MAC-ADRESSE_Node`

      FROM (Switchold RIGHT JOIN Hausverkabelung ON Switchold.Name = Hausverkabelung.SWITCH) 
      RIGHT JOIN DAERaum ON Hausverkabelung.Kennummer = DAERaum.HVKkennum
      WHERE  Switchold.STACK='"
      .$_POST['stackname']."'"

      Das was funktioniert:

      PHP-Code:
      $SQL_statement="SELECT 
      Hausverkabelung.Kennummer, 
      Hausverkabelung.SLOT, 
      Hausverkabelung.SWITCH, 
      Hausverkabelung.Kabelnummer,
      Hausverkabelung.PORT, 
      Hausverkabelung.STANDORT,
      Hausverkabelung.KONTAKT,
       Hausverkabelung.`ANSCHL-WEG`, 
      Hausverkabelung.`Ziel-Adresse`, 
      Hausverkabelung.`10-Mb-HD`, 
      Hausverkabelung.`10-Mb-FD`, 
      Hausverkabelung.`100-Mb-HD`,
      Hausverkabelung.`100-Mb-FD`,
      Hausverkabelung.`1-Gb-FD`, 
      Hausverkabelung.`MODEM-NUMMER`,
      Hausverkabelung.Disabled, 
      Hausverkabelung.Bemerkung, 
      Hausverkabelung.`Stack-IP`, 
      Hausverkabelung.`MAC-ADRESSE_NetKomp`,
      Hausverkabelung.`MAC-ADRESSE_Node`, 



      Switchold.Unit, 
      Switchold.Typ, 
      Switchold.Stack, 
      Switchold.`IP-Adresse`, 

      Geräteliste.PCNAME, 

      DAERaum.ANSCHLUSS, 
      DAERaum.FOLGEANSCHLUSS,
      DAERaum.RAUM, 
      DAERaum.`ANSCHLUSS-TYP`, 


      FROM Switchold RIGHT JOIN ((Geräteliste RIGHT JOIN Hausverkabelung ON Geräteliste.MACAdresse = Hausverkabelung.`MAC-ADRESSE_Node`)
      LEFT JOIN 
      DAERaum ON Hausverkabelung.Kennummer = DAERaum.HVKkennum) ON Switchold.Name = Hausverkabelung.SWITCH
      WHERE Hausverkabelung.SWITCH='"
      .$_POST['switchname']."'"
      Ich hoffs ist nun lesbarer

      Kommentar


      • #4
        so. das nicht funktionierende direkt ein wenig übersichtlicher, als es mittlerweile schon war.


        PHP-Code:
        $SQL_statement  " SELECT      SWO.Stack, 
                                        SWO.Name, 
                                        SWO.Unit, 
                                        SWO.Typ, 
                                        SWO.`IP-Adresse`, 
                                        
                                        DR.ANSCHLUSS, 
                                        DR.FOLGEANSCHLUSS, 
                                        DR.RAUM, 
                                        DR.`ANSCHLUSS-TYP`, 
                                        
                                        HV.SLOT, 
                                        HV.PORT,
                                        HV.STANDORT, 
                                        HV.KONTAKT, 
                                        HV.`ANSCHL-WEG`, 
                                        HV.`Ziel-Adresse`, 
                                        HV.`10-Mb-FD`, 
                                        HV.`100-Mb-HD`, 
                                        HV.`100-Mb-FD`,
                                        HV.`1-Gb-FD`,
                                        HV.`MODEM-NUMMER`, 
                                        HV.Disabled, 
                                        HV.Bemerkung, 
                                        HV.`Stack-IP`, 
                                        HV.`MAC-ADRESSE_NetKomp`,
                                        HV.`MAC-ADRESSE_Node`

                            FROM        Switchold SWO
                                            RIGHT JOIN Hausverkabelung HV ON (SWO.Name = HV.SWITCH)
                                                RIGHT JOIN DAERaum DR ON (HV.Kennummer = DR.HVKkennum)

                            WHERE       SWO.STACK = '"
        .$_POST['stackname']."'"

        man sieht auch seht schon, dass du viele male mit - im feldnamen arbeitest.

        ersetze das durch unterstrichen.

        dann verwerndest du als erstes feld im select Stack , verwendest aber STACK in der WHERE-clausel. gibt es tatsächlich diese beiden felder? wohl kaum.

        was lernen wir daraus?

        richtig. erst einmal die tabellen neu überarbeiten und dann noch einmal testen.

        ich weiss auch nicht, wie deine tabellen zusammen hängen. aber ist ein LEFT OUTER JOIN nicht besser?
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Hmm...die Verknüpfung hab ich direkt aus der Access datenbank übernommen, aber was du sagst leuchtet mir ein. Ich schaus nochmal durch. thxle schonmal

          Edit:

          So, habs geändert, geht aber immer noch nicht Sehr seltsam das ganze...
          Zuletzt geändert von Adler; 17.07.2003, 10:04.

          Kommentar


          • #6
            Ich habs mal mit der Selectanweisung aus dem ähnlichen Formular versucht, aber das Ergbnis ändert sich nicht. Gibts denn da nun eine Möglichkeit rauszufinden woran der sich aufhängt/totloopt?

            Kommentar


            • #7
              wie gesagt.... änder mal die feldnamen. das minus da raus und ein unterstrich rein.
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                Hab ich gerade gemacht. Ergebnis ist nachwievor das gleiche

                Kommentar


                • #9
                  teste es mit nur zwei verbundenen tabellen.

                  auch... poste mal bitte die aktuellen tabellen mit ein paar WENIGEN demodaten.
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    Ok, ich teste gleich ma.

                    Hier ein paar Beispieldatensätze:

                    Allerdings nur von den Werten die ich auch für die Seite brauche, die anderen brauche ich für die nächste.

                    Switchold.Stack= Stack10
                    Switch.Unit= 4
                    Hausverkabelung.SWITCH=Switch107
                    Switchold.Name=Switch107

                    Switchold.Stack=Stack03
                    Switchold.Unit=2
                    Hausverkabelung.SWITCH=SWITCH069

                    Switchold.Stack=Stack03
                    Switchold.Unit=3
                    Hausverkabelung.SWITCH=SWITCH068

                    Reicht das an Beispielen?

                    Edit: Bei nur 2 Tabellen tut ers...
                    Zuletzt geändert von Adler; 17.07.2003, 11:59.

                    Kommentar


                    • #11
                      eignetlich wollte ich einen export der tabellen mit hilfe des phpmyadmin...

                      aber wie du schon festegestellt hast, geht es mit zwei tabellen problemlos. nun schaue dir mal die daten genau an?

                      zum verbinden von tabellen sollte man i.d.r. nur id-felder nehmen. und auf jeden fall einen index auf das feld nehmen.
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #12
                        Also die indexes stimmen, sonst ginge es in der andern Seite auch nicht.
                        Der Fehler liegt richtig sehe in der JOIN Anweisung, allerdings hab ich ihn noch nicht beheben können...

                        Kommentar

                        Lädt...
                        X