Jump to content
xt:Commerce Community Forum

1104 - The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and us


mahrko86

Recommended Posts

Hallo zusammen,

ausgerechnet am Sonntagfrüh habe ich gestern feststellen müssen, dass sich bei mir im Shop die product_info.php nicht mehr aufriefen ließ.

Es kan folgender Fehler:

1104 - The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay


select p.products_fsk18, p.products_shippingtime, p.products_model, p.products_ean, pd.products_name, m.manufacturers_name, p.products_quantity, p.products_image, p.products_weight, pd.products_short_description, pd.products_description, p.products_id, p.manufacturers_id, p.products_price, p.products_vpe, p.products_vpe_status, p.products_vpe_value, p.products_discount_allowed, p.products_tax_class_id from products_description pd, products_to_categories p2c, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '2' and p2c.categories_id = '500' ORDER BY p.products_price ASC


[XT SQL Error]

Nun habe ich natürlich die Suchfunktion hier bedient, einige Stunden Google usw. So richtig geholfen hats mir aber noch nicht.

A) mein Webhoster muss erst prüfen, in wieweit er den Speicher vergrößern kann, ohne dass dies den Betrieb einschränkt. Zusätzlich muss der DB-Server neugestartet werden, da kann bis zu 30 Tage dauern.

B) vorweg: heute morgen habe ich dann eine "Zwischenlösung" gefunden. Ich hab im Adminbereich die Funktion "Zeige andere Produkte, die Kunden gekauft haben, die dieses Produkt gekauft haben" von 3 auf 0 gestellt, sprich deaktiviert. Gott sei Dank hab ich das gefunden, denn nun gehts vorerst mal wieder. (Bestellungen haben wir inzwischen so 15.000 Stück mit ca. 20.000 verkauften Artikel (Tabelle: oders_products)

Jetzt weiß ich nur nicht genau, habe ich das Problem damit endgültig beseitigt oder nur aufgeschoben? Nächstesmal wüsst ich nämlich nichts mehr, was ich noch deaktivieren könnte.

C) Ich hab wohl eine Lösung für OS-Commerce gefunden. Da gings allerdings im Specials und deren Preise. Man sollte einen Index erstellen, hat bei mir glaub nichts geholfen.

D) Dann hab ich noch diesen Fix gefunden (für OS)

osCommerce Community Add-Ons

Man soll dort nach einer Funktion in der product_info.php suchen. Naja nur steht die bei XT halt irgendwo anders. Die /inc/ get_products_*.php hab ich alle geschaut, konnte da nix finden.

The 1104 error occurs when you have a large number of products, (or a large nuber of specials) on a site, causing lots of queries to be made to the database.

The underlying problem here, is that the standard oscommerce code causes excessive database queries when a large number of products are on a site.

Although the fix below will get rid of the 1104 error message for you, it is a good idea to address the problem of the number of database queries being made and optimizng the code, as your site will end up running very slowly eventually.

Es heißt dort an soll die Zeile einbauen

tep_db_query("set sql_big_selects=1");[/PHP]

Und zwar vor dem Teil hier:

[PHP][B]$product_check_query[/B] = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
$product_check = tep_db_fetch_array($product_check_query);[/PHP]

Nur den kann ich nirgendwo finden. Könnt ihr da weiterhelfen?

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...