No entiendo lo que esta pasando o sí es normal.

https://explain.depesz.com/s/gIbH

Dejo aquí los planes de ejecución

en un link esta la consulta

SELECT
    s.m_product_id,
    s.m_locator_id,
    s.m_attributesetinstance_id,
    s.ad_client_id,
    s.ad_org_id,
    s.isactive,
    s.created,
    s.createdby,
    s.updated,
    s.updatedby,
    s.qtyonhand,
    s.qtyreserved,
    s.qtyordered,
    s.datelastinventory
FROM
    m_storage s
    INNER JOIN m_locator l ON ( l.m_locator_id = s.m_locator_id )
    LEFT OUTER JOIN m_attributesetinstance asi ON ( s.m_attributesetinstance_id = asi.m_attributesetinstance_id )
WHERE
    s.m_product_id = 1002273
    AND l.m_locator_id = 1000585
    AND (
        SELECT
            SUM(fa.qtyonhand)
        FROM
            m_storage fa
        WHERE
            fa.m_locator_id = l.m_locator_id
            AND fa.m_product_id = s.m_product_id
    ) > 0
    AND ( asi.guaranteedate IS NULL
          OR asi.guaranteedate > '2019-03-11 00:00:00' )
ORDER BY
    l.priorityno DESC,
    asi.guaranteedate,
    m_attributesetinstance_id,
    s.qtyonhand DESC ;


Y en el otro esta consulta tiene un dato modificado.

AND (
        SELECT
            SUM(fa.qtyonhand)
        FROM
            m_storage fa
        WHERE
            fa.m_locator_id = 1000585
            AND fa.m_product_id = 1002273
    ) > 0 ;

La consulta modificada se demora cerca de 126 ms. y la otra se demora 34 segundos... en teoría debería tomar los valores, pero no lo esta haciendo... hay algo que me estoy perdiendo, voy a seguir leyendo.



Reply via email to