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.