Jump to content

Uso excesivo de recursos por consultas SQL atacadas


Salvaor

Recommended Posts

Buenas tardes,

Mi servidor Raiola nos acaba de bloquear la web (sin previo aviso) por un uso excesivo de recursos por consultas SQL atascadas.

 

Este uso de recursos se estaba produciendo por consultas SQL atascadas, las cuales se demoraban mucho en ejecutarse, como las siguientes:

 

SELECT COUNT(DISTINCT p.id_product) c FROM (SELECT p.id_product, p.id_manufacturer, SUM(sa.quantity) as quantity, p.condition, p.weight, p.price, psales.quantity as sales FROM ps_product p LEFT JOIN ps_product_attribute pa ON (p.id_product = pa.id_product) LEFT JOIN ps_product_attribute_combination pac ON (pa.id_product_attribute = pac.id_product_attribute) LEFT JOIN ps_stock_available sa ON (p.id_product = sa.id_product AND IFNULL(pac.id_product_attribute, 0) = sa.id_product_attribute AND sa.id_shop = 1 AND sa.id_shop_group = 0 ) LEFT JOIN ps_product_sale psales ON (psales.id_product = p.id_product) INNER JOIN ps_category_product cp ON (p.id_product = cp.id_product) INNER JOIN ps_category c ON (cp.id_category = c.id_category AND c.active=1) INNER JOIN ps_product_shop ps ON (p.id_product = ps.id_product AND ps.id_shop = 1 AND ps.active = TRUE) LEFT JOIN ps_stock_available sa_1 ON (p.id_product = sa_1.id_product AND IFNULL(pac.id_product_attribute, 0) = sa_1.id_product_attribute AND sa_1.id_shop = 1 AND sa_1.id_shop_group = 0 ) WHERE ((sa.quantity<=0 AND sa_1.out_of_stock IN (0, 2))) AND p.visibility IN ('both', 'catalog') AND c.nleft>=355 AND c.nright<=356 AND ps.id_shop='1' GROUP BY p.id_product) p LEFT JOIN ps_product_attribute pa ON (p.id_product = pa.id_product) LEFT JOIN ps_product_attribute_combination pac ON (pa.id_product_attribute = pac.id_product_attribute) LEFT JOIN ps_stock_available sa ON (p.id_product = sa.id_product AND IFNULL(pac.id_product_attribute, 0) = sa.id_product_attribute AND sa.id_shop = 1 AND sa.id_shop_group = 0 ) LEFT JOIN ps_stock_available sa_1 ON (p.id_product = sa_1.id_product AND IFNULL(pac.id_product_attribute, 0) = sa_1.id_product_attribute AND sa_1.id_shop = 1 AND sa_1.id_shop_group = 0 ) WHERE ((sa.quantity<=0 AND sa_1.out_of_stock IN (0, 2)))

¿Alguna idea de qué puede ser  o cómo solucionarlo? Hasta que me respondan hemos probado a desactivar el módulo de facetas que suele ser problemático, pero claro tampoco podemos estar con la web cerrada.. 

 

Link to comment
Share on other sites

Esa consulta es la de listados de productos por categorías.. como te indican es muy probable que tengas muchas combinaciones por productos. Este problema lo viene arrastrando Prestashop desde siempre y una solución era trabajar estos productos con una cantidad grande de combinaciones con un módulo de prestochangeo Attribute Wizard Pro https://www.presto-changeo.com/prestashop-17-modules/139-prestashop-attribute-wizard-pro-module.html

Link to comment
Share on other sites

La única solución , vas a tener que ampliar el servidor o cambiar de hospedaje.

Como dicen por aquí lo más seguro es que tengas una cantidad elevada de combinaciones y necesites más recursos

Nunca había visto que bloquear la web por una cosa así. Debes tener unos recursos mínimos y PrestaShop pide bastantes

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...