SQL Endlosschleife - Hilfe

Thema wurde von Mick-D, 30. September 2014 erstellt.

  1. Mick-D
    Mick-D Erfahrener Benutzer
    Registriert seit:
    13. August 2012
    Beiträge:
    207
    Danke erhalten:
    12
    Danke vergeben:
    20
    #1 Mick-D, 30. September 2014
    Zuletzt bearbeitet: 30. September 2014
    Hallo Leute,
    ich habe ein riesiges Problem.

    In sporadischen Abständen laufen SQL Abfragen ins "leere" (Endlosschleife)

    Es betrifft immer die SQL-Abfrage:
    PHP:

    SELECT count
    (*) AS products_count FROM feature_index fproducts p WH

    siehe auch Screenshot.

    Ich muss dann über PHPMyAdmin in der DB die Prozesse beenden,
    damit der Shop wieder erreichbar ist.

    Und das sind je nach dem ganz schön viele...

    Jemand eine Idee?!

    Gruß Michael

    SQL_Befehl_Schleife.png
     
  2. Mick-D
    Mick-D Erfahrener Benutzer
    Registriert seit:
    13. August 2012
    Beiträge:
    207
    Danke erhalten:
    12
    Danke vergeben:
    20
    Hallo,
    wollte mal für die Gemeinde den Status aktualisieren ;-)

    Das Problem konnte mit dem Gambio Support eingegrenzt werden.
    Leider gibt es derzeit keine "richtige" Lösung für das Problem.

    Um die Problematik erst einmal zu umgehen, muss im Admin Bereich unter "Konfiguration" - "Mein Shop"
    die Option "Artikelanzahl hinter Kategoriennamen" auf Nein gesetzt werden.

    Wenn im Shop über 40.000 Artikel gepaart mit ca. 350 Kategorien durchgezählt werden müssen
    und dann zeitgleich auch noch neue Artikel/Kategorien über eine WaWi hochgeladen werden,
    während sich aktuell 300-400 Kunden im Shop "bewegen", geht der Web-Server leider in die Knie.

    Die Leistung des dedicated managed Server ist mit 64 GB Arbeitsspeicher und 12 Cores x 2,3 GHz,
    dafür leider nicht ausreichend !!! :confused:

    Ich hoffe das Gambio das "Problemchen" mal beheben kann/wird.

    Gruß Michael
     
  3. Dennis (MotivMonster.de)
    Dennis (MotivMonster.de) G-WARD 2013/14/15/16
    Registriert seit:
    22. September 2011
    Beiträge:
    31.303
    Danke erhalten:
    6.268
    Danke vergeben:
    1.118
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    da geht der Server in die Knie??
    mit so nem Teil solltest normal dass 3 bis 4-fache bewältigen können
    Evtl. is ja was nciht optimal konfiguriert auf dem Teil
     
  4. Avenger
    Avenger G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Das ist ja auch kein Wunder, weil die beiden Tabellen nicht verknüpft sind...

    So wird jeder Eintrag mit jedem in der anderen Tabelle verknüpft.

    Was soll das SQL denn erreichen?
     
  5. Mick-D
    Mick-D Erfahrener Benutzer
    Registriert seit:
    13. August 2012
    Beiträge:
    207
    Danke erhalten:
    12
    Danke vergeben:
    20
    Das SQL soll (laut Gambio) die Artikelanzahl hinter den Kategorien zählen und dann anzeigen.

    Gruß Michael
     
  6. Avenger
    Avenger G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Wenn mich meine SQL-Kenntnisse nicht im Stich lassen würde ich sagen:

    nie im Leben wird das mit diesem SQL erreicht......

    Versuche es mal damit:

    PHP:
    SELECT 
        cd
    .categories_id,
        
    cd.categories_name,
        
    count(p.products_id) AS products_count
    FROM
        categories_description cd
    ,
        
    products p,
        
    products_to_categories p2c
    WHERE 
        p2c
    .products_id=p.products_id AND
        
    p2c.categories_id=cd.categories_id AND
        
    cd.language_id=2
    GROUP BY
        cd
    .categories_id
    ORDER BY
        cd
    .categories_name 
     
  7. Mick-D
    Mick-D Erfahrener Benutzer
    Registriert seit:
    13. August 2012
    Beiträge:
    207
    Danke erhalten:
    12
    Danke vergeben:
    20
    Hi Avenger,
    vielen Dank für Deinen Vorschlag :)

    Ich weis leider nicht in welcher Datei das SQL steht :confused:

    Mir wurde vom Gambio Support nur mitgeteilt das ich im Admin Bereich unter "Konfiguration" - "Mein Shop" die Option "Artikelanzahl hinter Kategoriennamen" auf Nein setzen soll damit dieser Befehl nicht mehr ausgeführt wird.

    Kannst Du mir sagen in welcher Datei ich Deinen Code einfügen muss?

    Gruß Michael
     
  8. Wilken (Gambio)
    Wilken (Gambio) Erfahrener Benutzer
    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.311
    Danke vergeben:
    2.208
    @Avenger,

    wenn dir etwas schönes einfällt, darfst du gerne einen Pull-Request machen ;)
     
  9. Anonymous
    Anonymous Erfahrener Benutzer
    Mitarbeiter
    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.760
    Danke erhalten:
    1.749
    Danke vergeben:
    137
    Hallo,

    also, erst mal: Der problematische Query sieht eigentlich so aus:

    PHP:
    $t_sql "SELECT count(*) AS products_count
                FROM 
                    feature_index f,
                    products p
                WHERE 
                    f.categories_index LIKE '%-" 
    . (int)$t_row['categories_id'] . "-%' AND
                    f.products_id = p.products_id AND
                    p.products_status = 1
                    " 
    $t_group_check 
                    " 
    $fsk_lock ;
    … und entstammt system/controls/CategoriesAgent.inc.php.

    Es besteht aber eine gewisse Wahrscheinlichkeit, dass das Problem ein anderes ist. Wenn an der Stelle etwas in eine Endlosschleife läuft, kann es sein, dass die Kategorienverkettung kaputt ist und (mindestens) einen Zyklus enthält. Das darf natürlich nicht sein.