Anzahl der SQL Abfragen pro Seite sind normal

Aktuell arbeiten wir noch im Hintergrund an der Foren-Struktur, daher kann es vorkommen das noch nicht alles zu 100% passt. Sowohl die Foren-Bereiche, Labels, Berechtigungen, Icons und das verschieben der Themen in die entsprechende Bereiche wird noch alles durchgeführt, sobald das abgeschlossen ist entfernen wir diesen Hinweis auch.
  • Hallo zusammen,

    Auf unserer Webseite http://tbruit-jugendfussball.de habe ich in den letzten Tagen, hauptsächlich im angemeldeten Zustand immer mal wieder Fehler 500 beim Aufruf einzelner Seiten.

    Nun habe ich den Support meines Betreibers daraufhin mal angeschrieben. Die haben mir mitgeteilt das es wohl am TimeOut der Scripte liegt.

    Was mich aber viel mehr interessiert ist, das sie mir mitgeteilt haben das auf einer Seite wo der Fehler auftrat über 2000 SQL Abfragen kamen.

    Ist diese Anzahl normal?
    Wie viele habt Ihr so?

    Und wie kann ich das selber auslesen?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

    Wenn du Fragen hast, kannst du dich gerne jederzeit an @Maximilian Rupp wenden

    Hinweis: folgt noch

  • Es gibt ja nicht nur ein Timeout. Eins bezieht sich auf die Laufzeit (Ausführungszeit) des Scripts, wobei der Standard wohl 30 Sekunden beträgt. Also ein Script, das sich nach 30 Sekunden noch nicht ausgemärt hat, wird abgebrochen und das kann zum Beispiel bei Suchvorgängen passieren.

    Ein anderes Timeout bezieht sich auf die Wartezeit vom Browser bei einer Anfrage, liegt etwas höher, jedoch auch nicht bei unendlich. Die genaue Zeitspanne kenne ich da nicht.

    2.000 SQL Abfragen, auf was beziehen sich die?
    Auf einen Bot, der im Sekundentakt kam?
    Oder auf ein Plugin mit einer hängenden Schleife?
    Kann wohl auch alles Mögliche sein.

    Wenn die Abfragen durch Bots verursacht wurden, dann sollte sich das in Deinen Logs zu erkennen geben.

  • Also wenn die 2000 Abfragen durch einen Aufruf der Seite zustande kommen, dann ist das definitiv nicht normal. Oder es kann auch ein Bot sein, der bei dir "Amok läuft" und Seiten immer wieder aufruft.

  • Füge das mal in die functions.php Deines Themes ein:

    Code
    function performance() {
        $stat = '';
        $stat .= get_num_queries().' Datenbankabfragen in '.timer_stop( 0, 3 ).' Sekunden<br />';
        $stat .= sprintf('%.2f MB Speicher belegt',memory_get_peak_usage() / 1024 / 1024);
        return $stat;
    }
    add_shortcode( 'f1-perf', 'performance' );

    Den Shortcode kannst Du an beliebiger Stelle verwenden, u. a. im normalen Textwidget.

    Damit Du nahezu alle DB-Abfragen erfasst bekommst, solltest Du die Funktion in der footer.php Deines Themes einbinden. Das machste ganz einfach mit

    Code
    do_shortcode('f1-perf');

    Die Funktion liefert die Anzahl der Datenbankabfragen und der ungefähren Speicherverbrauch. Die Angaben beziehen sich dabei immer nur auf die aktuell angezeigte Seite. Beim Speicherverbrauch kann man zwischen 2MB und bis zu 10MB nochmal grob eben drauf rechnen - kommt aber immer auf Funktionen, Plugins & Co. an.

  • Funktionieren sollte es ohne Probleme - check mal, ob Du den Code oben komplett kopiert hast. Manchmal vergisst man eine Zeile durch die kleine Scrollleiste.

    Ergänzend kannst Du auch mal in der wp-config.php die Konstante WP_DEBUG auf true setzen, dann werden Fehler von PHP/MySQL im Frontend ausgegeben.

  • Mit do_shortcode('f1-perf'); im Footer hat es bei mir auch nicht funktioniert, mit ['f1-perf'] als Schortcode in einem Beitrag hingegen schon.

  • Mein Fehler...

    Code
    echo do_shortcode('[f1-perf]');

    Hier mal im Footer zu sehen: http://enfold.formateins.de

    Sollte in die functions.php im Hauptverzeichnis des Themeordners gesetzt werden - nicht in eine Erweiterungsfunktion, die für ein Themeeigenes Framework verantwortlich zeichnet.

  • Ja, jetzt funktioniert es auch in der footer.php, lag an den fehlenden Klammern,

    PHP
    <?php echo do_shortcode('[f1-perf]'); ?>

    unter Localhost gerade getestet:

    34 Datenbankabfragen in 0,269 Sekunden
    16.97 MB Speicher belegt

    Wieder etwas von formateins gelernt.

  • Also ich habe das nun in der normalen "functions.php" drin stehen.

    Nicht in der im Editor zusätzlich angezeigten "cyberchimps/function.php"
    Leider bekomme ich weder in einem Beitrag, noch im Footer etwas angezeigt.

    Außer "f1-perf"

  • Vielleicht könnte mir jemand nochmal sagen, in welche functions.php das nun rein muss.
    Wenn ich per ftp zugreife gibt es ja mehrere.

    Und über den Editor in WP scheint es nicht zu klappen.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!