Ausführungszeit zu lang!

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

  • Ausführungszeit zu lang!

    Hallo,

    Mein Provider sagt, dass folgende SQL-Statements in der Ausführungszeit zu lang sind.


    $sql = "select BKZ,PLZ, count(id), Arbeitsort from `stellen` WHERE `BKZ` = '".$bkz."' GROUP BY `PLZ` order by `PLZ`";

    $sql="select plz.plz,plz.ort,stellen.BKZ,count(plz.id) from `plz` INNER JOIN stellen ON plz.plz = stellen.PLZ where plz.adm3='".$KR."' AND stellen.BKZ =".$bkz." GROUP BY plz.plz";


    Für Hilfe und Meinungen wäre ich dankbar.

    PS: kennt jemand eine Möglichkeit die Ausführungsgeschwindigkeit von sql-statements direkt auf dem Webspace zu überprüften??

  • #2
    EXPLAIN anschauen + Indizies setzen.

    poste bitte das nächste mal die sql-query und deine tabellen-struktur, benutze die code-tags. danke.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      OffTopic:

      soweit ich weis durchsucht der php-parser strings die mit " " gekennzeichnet sind sowieso nach variablen - wieso machst du es dann nicht so:

      PHP-Code:
      $sql="select plz.plz,plz.ort,stellen.BKZ,count(plz.id) from `plz` INNER
       JOIN stellen ON plz.plz = stellen.PLZ where plz.adm3='
      $KR' AND 
      stellen.BKZ =
      $bkz GROUP BY plz.plz"

      MfG
      aim
      Lies mich jetzt!
      - OT-Tags-Liebhaber und BB-Code-Einrücker -

      Kommentar


      • #4
        Hallo,

        eine Zeitmessung für dein Statement könnte so aussehen:

        PHP-Code:
        <?php 

        list($usec$sec) = explode(' ',microtime());
        $begin = ((float)$usec + (float)$sec);

        //hier fragst du deine DB ab -> $res = mysql_query($query);

        list($usec$sec) = explode(' ',microtime());
        $end = ((float)$usec + (float)$sec);

        $time $end $begin;

        echo 
        $time;

        ?>
        Wenn es zu langsam ist dann dürft's wirklich nur an fehlenden Indizies auf plz.plz und stellen.PLZ liegen.

        EDIT:
        Und hier noch: plz.adm3, stellen.BKZ
        Zuletzt geändert von Quetschi; 19.07.2005, 13:33.
        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
        Schön - etwas Geschichte kann ja nicht schaden.
        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

        Kommentar


        • #5
          Danke für die Hilfen.
          Die Indizes sind gesetzt auf den einzelnen Spalten sind gesetzt.

          Ingo

          Kommentar

          Lädt...
          X