Ich habe diese where-Klausel Bedingung in Oracle, um nach Namen zu suchen, die einem bestimmten Wert ähnlich sind, es gibt die richtigen Ergebnisse zurück, jedoch läuft es sehr langsam. Gibt es eine effizientere Möglichkeit, diese Bedingung auszuführen? Vielen Dank.Langsame Oracle-Ausführung
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)) || '%')
)
Haben Sie sich den Ausführungsplan angesehen? Was hat es gesagt? – nvoigt
Die erste Sache, die Sie betrachten möchten, ist, diesen Aufruf 'local.pkg.orgname_format (oberer (P5_ORGN_NAME))' von der WHERE-Klausel loszuwerden. Der Aufruf von PL/SQL in der WHERE-Klausel ist oft ein Performance-Killer. –
laufen erklären Plan, um zu sehen, was vor sich geht. Wenn Sie diese Funktion orgname_format verwenden müssen, sehen Sie sich den Funktionsindex an. – OldProgrammer