Was löst dieses SQL Code aus?

Thema wurde von Skyline12, 30. Juli 2012 erstellt.

  1. Skyline12

    Skyline12 Mitglied

    Registriert seit:
    24. Juli 2012
    Beiträge:
    9
    Danke erhalten:
    0
    #1 Skyline12, 30. Juli 2012
    Zuletzt bearbeitet: 2. August 2012
    Welches Modul löst dieses SQL Code aus?

    Guten Tag Zusammen,

    wir haben in unserem Shop das Problem, dass Shop mind. einmal am Tag durch eine langlaufende Query lahmgelegt wird. Query, die das Problem verursacht, sieht folgend aus:


    ----------
    SELECT distinct
    p.products_id,
    p.products_price,
    p.products_model,
    p.products_quantity,
    p.products_shippingtime,
    p.products_fsk18,
    p.products_image,
    p.products_weight,
    p.products_tax_class_id,
    p.products_vpe,
    p.products_vpe_status,
    p.products_vpe_value,
    pd.products_name,
    pd.products_short_description,
    pd.products_description FROM products_to_categories ptc, categories c, products AS p LEFT JOIN products_description AS pd ON (p.products_id = pd.products_id) LEFT OUTER JOIN products_attributes AS pa ON (p.products_id = pa.products_id) LEFT OUTER JOIN products_options_values AS pov ON (pa.options_values_id = pov.products_options_values_id) LEFT OUTER JOIN specials AS s ON (p.products_id = s.products_id) AND s.status = '1' WHERE p.products_status = '1' AND pd.language_id = '2' AND p.group_permission_1=1;
    ------

    Wenn aus dem Abschnitt "FROM products_to_categories ptc, categories c, products as p" die Tabellen ptc und c gelöscht werden, dann läuft die Abfrage sofort. Was wir leider nicht durch log-Dateien feststellen können, ist die Antwort auf die Frage, warum wird diese Query mind. einmal am Tag (um ca. die selbe Zeit) ausgeführt. In welcher Datei kann ggf. SQL Code angepasst werden?

    Falls Prozess im PHPAdminn geschlossen wird, gibt es keine Probleme, Fehlermeldung usw. Alles läuft dann wie gewohnt weiter.

    Danke für die Unterstützung!

    MfG

    Evgueni
     
  2. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Ich kenne mich zwar nicht mit SQL-Befehlen und Abfragen aus,
    aber als sich meine WaWi mit dem Shop Synchronisiert hat, wurden diese Tabellen abgefragt.
    Ob dieses
    bei war weiß ich allerdings nicht mehr (habe die Funktion schon vor einiger Zeit deaktiviert).
     
  3. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Da werden die Artikel inkl. ihrer Attribute abgefragt.....

    In welchem Modul befindet sich der Befehl?

    In der jetzigen Form sind die "products_to_categories ptc, categories c" tatsächlich überflüssig, und können entfernt werden.

    Und das erklärt auch die lange Laufzeit, weil die Selektion aus diesen beiden Tabellen nicht durch "WHERE"-Bedingungen eingeschränkt wird...

    Die Idee war wohl, auch Artikel auszuschließen, die in versteckten Kategorien liegen, nur wurden die notwendigen "WHERE"-Bedingungen vergessen.

    Wenn man an das obere SQL folgendes anhängt, würde diese Bedingung noch erfüllt:

    PHP:
     AND ptc.categories_id=c.categories_id AND ptc.products_id=p.products_id AND c.categories_status=
     
  4. Skyline12

    Skyline12 Mitglied

    Registriert seit:
    24. Juli 2012
    Beiträge:
    9
    Danke erhalten:
    0
    Das ist genau das Problem. SQL-Code wurde über MySQL-Log ermittelt. Ich hätte gern selbst gewusst, in welchem Modul sich dieser Befehl befindet.

    Viele Grüße,

    Evgueni