烦请高手赐教,下面的语句查询是太慢了,怎么才能变得快一些呢?SELECT msi.inventory_item_id, msi.segment1 AS item_no, bic.operation_seq_num,
msi1.inventory_item_id AS main_id, msi1.segment1 AS mb_item,
msi2.segment1 sub_item, bic.component_quantity AS qty,
brd.component_reference_designator AS LOCATION, msi1.description,
msi2.description sub_desc
FROM inv.mtl_system_items msi,
bom.bom_bill_of_materials bom,
bom.bom_inventory_components bic,
inv.mtl_system_items msi1,
bom_reference_designators brd,
inv.mtl_system_items msi2,
(SELECT * FROM bom.bom_substitute_components WHERE NVL (acd_type, 1) <> 3) bsc
WHERE msi2.inventory_item_id(+) = bsc.substitute_component_id
AND bic.component_sequence_id = bsc.component_sequence_id(+)
AND bic.component_sequence_id = brd.component_sequence_id(+)
AND NVL (brd.acd_type, 1) <> 3
AND bom.common_bill_sequence_id = bic.bill_sequence_id
AND bic.implementation_date IS NOT NULL
AND msi1.inventory_item_id = bic.component_item_id
AND msi1.organization_id = msi.organization_id
AND msi2.organization_id = msi.organization_id
AND bom.organization_id = msi.organization_id
AND bom.assembly_item_id = msi.inventory_item_id
and msi.organization_id in(24,748,87)
AND msi.segment1 = '606-X0023-040'
AND brd.component_reference_designator = 'U29'
AND NVL(bic.disable_date, sysdate + 1) >=( SELECT NVL (MIN (rev.effectivity_date), sysdate)
FROM inv.mtl_item_revisions rev
WHERE rev.inventory_item_id = bom.assembly_item_id
AND rev.organization_id = bom.organization_id
AND rev.revision > '000')
AND bic.effectivity_date <(select nvl (min (rev.effectivity_date), sysdate)
FROM inv.mtl_item_revisions rev
WHERE rev.inventory_item_id = bom.assembly_item_id
AND rev.organization_id = bom.organization_id
AND rev.revision > '000')
msi1.inventory_item_id AS main_id, msi1.segment1 AS mb_item,
msi2.segment1 sub_item, bic.component_quantity AS qty,
brd.component_reference_designator AS LOCATION, msi1.description,
msi2.description sub_desc
FROM inv.mtl_system_items msi,
bom.bom_bill_of_materials bom,
bom.bom_inventory_components bic,
inv.mtl_system_items msi1,
bom_reference_designators brd,
inv.mtl_system_items msi2,
(SELECT * FROM bom.bom_substitute_components WHERE NVL (acd_type, 1) <> 3) bsc
WHERE msi2.inventory_item_id(+) = bsc.substitute_component_id
AND bic.component_sequence_id = bsc.component_sequence_id(+)
AND bic.component_sequence_id = brd.component_sequence_id(+)
AND NVL (brd.acd_type, 1) <> 3
AND bom.common_bill_sequence_id = bic.bill_sequence_id
AND bic.implementation_date IS NOT NULL
AND msi1.inventory_item_id = bic.component_item_id
AND msi1.organization_id = msi.organization_id
AND msi2.organization_id = msi.organization_id
AND bom.organization_id = msi.organization_id
AND bom.assembly_item_id = msi.inventory_item_id
and msi.organization_id in(24,748,87)
AND msi.segment1 = '606-X0023-040'
AND brd.component_reference_designator = 'U29'
AND NVL(bic.disable_date, sysdate + 1) >=( SELECT NVL (MIN (rev.effectivity_date), sysdate)
FROM inv.mtl_item_revisions rev
WHERE rev.inventory_item_id = bom.assembly_item_id
AND rev.organization_id = bom.organization_id
AND rev.revision > '000')
AND bic.effectivity_date <(select nvl (min (rev.effectivity_date), sysdate)
FROM inv.mtl_item_revisions rev
WHERE rev.inventory_item_id = bom.assembly_item_id
AND rev.organization_id = bom.organization_id
AND rev.revision > '000')
FROM inv.mtl_item_revisions rev
WHERE rev.inventory_item_id = bom.assembly_item_id
AND rev.organization_id = bom.organization_id
AND rev.revision > '000')