Zu viele Prozesse auf der DB durch eine SQL-Abfrage

Hi all -

wir haben die 4.3.0 CE im Einsatz.

Nachdem seit ein paar Tagen immer die mysql-DB abgeschossen wird (max_user_limit), fällt mir heute auf, dass in der phpmyadmin Prozessliste immer ca. 30 bis 50 gleichzeitige Prozesse laufen, welche als Sending Data folgende Anfrage absetzen:

[I]select count(oxarticles.oxid) from oxarticles where oxarticles.oxid in (select if( oxparentid=’’, ox[/I]

(Ist leider abgeschnitten), vermutlich handelt es sich um den Eintrag aus dem Ticket 1808 (hier allerdings für die 4.4):
[I]select count(oxarticles.oxid) from oxarticles where oxarticles.oxid in (select if( oxparentid=’’, oxid, oxparentid ) as id from oxarticles where oxprice >= 0 and oxprice <= 9.99 ) and oxarticles.oxissearch = 1 and ( oxarticles.oxactive = 1 ); [/I]

Hat jemand eine Idee, wie wir das in der 4.3.0 beheben können?

Danke! mpqtjan

Alle Preiskategorien herausschmeißen (die mit Preisen von bis). Das sollte das Problem lösen.

Leider keine schöne Lösung, hoffe du findest eine “richtige”.

Hi Firefax -

solche automatisch generierten Kategorien hab ich gar nicht drin. Ggf. kann der Entwickler aber auch nur den “Output” in den Templates entfernet haben, obwohl die Anfragen trotzdem dann noch laufen.

Wo kann ich die denn ausschalten/rausschmeißen?

Danke! m.

Hast du bei irgend einer Kategorie die Preise von bis gepflegt ?
Bzw. Lösche den Eintrag in der Kategorie die kleiner 9.99 € enthält --> where oxprice >= 0 and oxprice <= 9.99

Mhhh, wobei sich das bei mir nur beim Leeren des Caches ausgewirkt hat, nicht aber “permanent”.

[QUOTE=mpqtjan;43362]Hi Firefax -

solche automatisch generierten Kategorien hab ich gar nicht drin. Ggf. kann der Entwickler aber auch nur den “Output” in den Templates entfernet haben, obwohl die Anfragen trotzdem dann noch laufen.

Wo kann ich die denn ausschalten/rausschmeißen?

Danke! m.[/QUOTE]

Das ist mit großer Wahrscheinlichkeit der Performancehaken “leere Kategorien ausblenden”. Nimm den bitte raus. Hast Du leere Kategorien, dann gehören die inaktiv gesetzt.

Dieser Haken kann unter ungünstigen Umständen ein echter Shopkiller sein.

[QUOTE=mpqtjan;43341]Hi all -

wir haben die 4.3.0 CE im Einsatz.

Nachdem seit ein paar Tagen immer die mysql-DB abgeschossen wird (max_user_limit), fällt mir heute auf, dass in der phpmyadmin Prozessliste immer ca. 30 bis 50 gleichzeitige Prozesse laufen, welche als Sending Data folgende Anfrage absetzen:

[I]select count(oxarticles.oxid) from oxarticles where oxarticles.oxid in (select if( oxparentid=’’, ox[/I]

(Ist leider abgeschnitten), vermutlich handelt es sich um den Eintrag aus dem Ticket 1808 (hier allerdings für die 4.4):
[I]select count(oxarticles.oxid) from oxarticles where oxarticles.oxid in (select if( oxparentid=’’, oxid, oxparentid ) as id from oxarticles where oxprice >= 0 and oxprice <= 9.99 ) and oxarticles.oxissearch = 1 and ( oxarticles.oxactive = 1 ); [/I]

Hat jemand eine Idee, wie wir das in der 4.3.0 beheben können?

Danke! mpqtjan[/QUOTE]
In der config.inc.php “$this->iDebug” auf 3 setzen.

Dann wird eine DB-Zugriffs-Statistik erstellt.und angezeigt.

Da kann man sehen womit der Shop wie viel zeit mit der DB verbrät.