Performance of query for getting item revisions
CarolinFeb 12 2013 — edited Feb 12 2013Hi All,
The following query took several minutes in an environment with about 7,500,000 item revisions :
SELECT
MIR.INVENTORY_ITEM_ID
, MSI.CONCATENATED_SEGMENTS ITEM_NUMBER
, MIR.ORGANIZATION_ID
, MP.ORGANIZATION_CODE
FROM
MTL_ITEM_REVISIONS_VL MIR
, MTL_PARAMETERS MP
, MTL_SYSTEM_ITEMS_VL MSI
WHERE
(MIR.INVENTORY_ITEM_ID = p_Item_ID OR MSI.CONCATENATED_SEGMENTS = p_Item_Number)
AND (MIR.ORGANIZATION_ID = p_Org_ID OR MP.ORGANIZATION_CODE = p_Org_Code)
AND MP.ORGANIZATION_ID = MIR.ORGANIZATION_ID
AND MIR.INVENTORY_ITEM_ID = MSI.INVENTORY_ITEM_ID
AND MIR.ORGANIZATION_ID = MSI.ORGANIZATION_ID ORDER BY EFFECTIVITY_DATE, REVISION DESC;
If changing this query to the following, it takes less than a second:
SELECT
MIR.INVENTORY_ITEM_ID
, MSI.CONCATENATED_SEGMENTS ITEM_NUMBER
, MIR.ORGANIZATION_ID
, MP.ORGANIZATION_CODE
FROM
MTL_ITEM_REVISIONS_VL MIR
, MTL_PARAMETERS MP
, MTL_SYSTEM_ITEMS_VL MSI
WHERE
MSI.CONCATENATED_SEGMENTS = p_Item_Number
AND MP.ORGANIZATION_CODE = p_Org_Code
AND MP.ORGANIZATION_ID = MIR.ORGANIZATION_ID
AND MIR.INVENTORY_ITEM_ID = MSI.INVENTORY_ITEM_ID
AND MIR.ORGANIZATION_ID = MSI.ORGANIZATION_ID ORDER BY EFFECTIVITY_DATE, REVISION DESC;
Can anyone explain the extreme difference in performance between these two queries?
Thanks & Regards
Carolin