【发布时间】:2019-03-18 17:31:48
【问题描述】:
我在 ORACLE 中有以下查询,由于两个喜欢之间的 OR 需要很长时间才能运行。
select pat_mrn_id,surgery_date, proc_name
from or_log_all_proc, or_proc, or_log, patient
where
upper(proc_name) like ('%CRANIOTOMY ANEURYSM%') OR upper(proc_name) like
('CLIPPING%ANEURYSM')
任何有助于有效编写查询的帮助将不胜感激。 谢谢! JH
【问题讨论】:
-
OR不是WHERE子句中昂贵的部分。这是'LIKE '%anything%'。为了解决第一个条件,需要扫描数据库中的每一行。仅在第一个条件下尝试它,我怀疑性能会不会有很大提高。 (即使您解决了交叉连接 4 个表的问题,根据以下答案)
标签: sql oracle performance query-optimization sql-like