我有以下查询:
SELECT OEH.HEADER_ID, OEH.ORDER_NUMBER
,oel.line_number
,oel.pricing_quantity_uom as UOM
,oel.attribute1 as customer_length
,oel.attribute6 as theoretical_weight
FROM OE_ORDER_HEADERS_ALL OEH JOIN
OE_ORDER_LINES_ALL OEL
ON OEH.ORG_ID = OEL.ORG_ID AND
OEH.HEADER_ID = OEL.HEADER_ID
WHERE OEL.LINK_TO_LINE_ID IS NULL;
我正面临嵌套循环,想要调整此查询,我需要在哪些列上创建索引?
答案 0 :(得分:1)
一个方便的规则是索引JOIN
中使用的列:OE_ORDER_HEADERS_ALL(ORG_ID, HEADER_ID)
和OE_ORDER_LINES_ALL(ORG_ID, HEADER_ID)
。
事实上,Oracle可能只会为JOIN
使用其中一个,但它会选择更好的一个。