急!请帮忙指点一个SQL语句的优化问题
select
distinct *
from
person,addr,contract
where
lower(per_name) like '%john%' and
con_type = 'I' and
con_tin = per_ssn and
con_number = add_num and
(add_type = '01' or add_address_type = '02' or add_type = '29')
三个表均有300000条左右数据,其中add_type共有10种,con_type有两种。结果约有2000条数据,所有查询子段均建立了索引,但是查询速度非常慢。请问各位有没有办法优化。先谢了!
Execution plan:
OPERATION OPTIONS
------------------------------ --------
SELECT STATEMENT
SORT UNIQUE
MERGE JOIN
SORT JOIN
HASH JOIN
TABLE ACCESS FULL
TABLE ACCESS FULL
SORT JOIN
TABLE ACCESS FULL