我在Oracle中有這個where子句條件來檢查與給定值相似的名稱,但它返回正確的結果,但運行速度非常慢。有沒有更有效的方法來執行這種情況?謝謝。Slow Oracle執行
AND
(P5_ORGN_NAME IS NULL OR
(D.ORGANIZATION_NAME LIKE '' || upper(P5_ORGN_NAME) || '%' OR D.FORMATTED_ORGANIZATION_NAME like
'' || local.pkg.orgname_format(upper(P5_ORGN_NAME)) || '%')
)
你看執行計劃嗎?它說了什麼? – nvoigt
您想要查看的第一件事是從WHERE子句中刪除此調用'local.pkg.orgnameformat(upper(P5_ORGN_NAME))'。在WHERE子句中調用PL/SQL通常是性能殺手。 –
運行解釋計劃,看看發生了什麼。如果您必須使用此orgname_format函數,請查看基於函數的索引。 – OldProgrammer