Seite 1 von 1

Wie reduziere ich Queries?

Verfasst: 03.12.2007 23:23
von LOLRainbow
Ich hab zwar ne lange Liste MODs, aber so viele betreffen die Startseite auch nicht. Dennoch werden fast 100 Queries auf dem Index angezeigt, und auch in der Viewforum sind es ca. 70 und in der viewtopic sind es unter 20.

Die Frage ist aber auch, ob das Script richtig funktionier, da es folgendes ausgibt:
Page generation time: 1196720593.8675s (PHP: 100% - SQL: 0%) - SQL queries: 99 - GZIP disabled - Debug on
Wie erfahre ich am besten woher die ganzen Queries kommen? Ich hab Stück für Stück immer wieder ein paar MODs auf dem Index probeweise gelöscht, aber ich konnte es nicht stark minimieren.

Welche Dateien stehen denn im Bezug auf den Index?

Verfasst: 03.12.2007 23:36
von gn#36
Angesichts der Zeit die angezeigt wird würde ich mich auf diese Ausgaben nicht verlassen, ich glaube nicht dass die Seite 38 Jahre zum Laden braucht :D . Ich würde sagen mehr als 20 Queries sollten es nicht sein, der Index hier braucht beispielsweise 14, 99 wären da schon extremst ineffizient, das sieht nach Queries in einer Schleife aus (da kann das dann schon mal mehr werden). Häufig kann man Queries in einer Schleife durch ein größeres Query vorher abfangen, aber nicht immer. Wenn du was an der Querystruktur änderst musst du zwangsweise auch die Zugriffe ändern. Bei 99 Stück wäre ein möglicher vorhandener Aufbau grob sowas:

Code: Alles auswählen

for(i = xy)
{
...
$sql = 'SELECT * FROM xy WHERE id= i';
$result = $db->sql_query($sql);
...
}
Ob es sich lohnt das dann aufwändig so umzubauen, dass das Query vor der Schleife liegt kann man nicht sagen. Bei manchen Strukturen ist es sogar sinnvoller wenn es innerhalb der Schleife liegt da es evtl. doch nur recht selten mal vorkommt dass es tatsächlich ausgeführt werden muss.

Verfasst: 04.12.2007 17:31
von Boecki91
Zu der Zeit:

1196720593.8675s

Wenn man das zurück rechnet landet man fast beim 1.1.1970 Dem Startzeitpunkt des UNIX-Timestamps.
Man kann es also zurückrechnen und feststellen das du die Fehlermeldung am
3.12.2007 um 23:23:13 aufgerufen hast und hier hier beschreiben hast. aber das nur am Rande...

Tatsache ist das Die Berechnung der Laufzeit irgendwie in die Hose gegangen ist, liegt eventuell am verwendeten Mod oder eben an einem Einbaufehler.

Normalerweise muss das so aussehen:

Code: Alles auswählen

//Irgendwo im page_header:

$start = microtime();

//Irgendwo im page_footer:
$end = microtime();
$laufzeit= $end - $start;
Bei dir wird irgendetwas falsch berechnet.

Verfasst: 05.12.2007 01:10
von LOLRainbow
Ich hab grad keinen FTP-Zugriff, aber ich werd das überprüfen.

ich würde mich über ein paar Vergleichswerte von euch freuen. Wieviel Queries weist denn euer Foren-Index auf, und mit welchen MODs?

Timo