求帮助!SQL语句查询速度太慢的有关问题。

求帮助!SQL语句查询速度太慢的问题。。
Select DAGUID,DAH,XMMC,AJMC,GDSJ,GDBZ
 from ZL_ARCHIVES 
 where  (DAH like '%''%' or XMMC like '%''%' or AJMC like '%''%' ) 
 and GDBZ='3' 
 and DELSIGN is null
 and DAGUID In(XXX,XXX)--1000条记录
 Or  DAGUID In(XXX,XXX)--1000条记录
 Or  DAGUID In(XXX,XXX)--1000条记录
 Or  DAGUID In(XXX,XXX)--1000条记录
  Or  DAGUID In(XXX,XXX)--1000条记录
 Or  DAGUID In(XXX,XXX)--1000条记录
 Or  DAGUID In(XXX,XXX)--1000条记录
 Or  DAGUID In(XXX,XXX)--1000条记录 
 Or  DAGUID In(XXX,XXX)--1000条记录


最后的查询条件里面,Or DAGUID In(结果集),这个结果集有9000条左右的数据,因为Oracle的In的结果集不能超过1000条,就按照网上的办法改成这样了,但是速度超级慢,查出来要150秒左右,请问怎么调整SQL语句才能让速度快一些呢?
------解决方案--------------------
Select DAGUID,DAH,XMMC,AJMC,GDSJ,GDBZ
 from ZL_ARCHIVES t
 where  (DAH like '%''%' or XMMC like '%''%' or AJMC like '%''%' ) 
 and GDBZ='3' 
 and DELSIGN is null
 and exists (
 select 1 from table_name s where s.column1 = t.DAGUID 
 )

------解决方案--------------------
你可以先把9000 条DAGUID 合成用逗号隔开的字符串,然后以CLOB的方式传递到DB,在DB用函数把CLOB转成内存表,变成类似如下的函数:

Select DAGUID,DAH,XMMC,AJMC,GDSJ,GDBZ
 from ZL_ARCHIVES t
 where  (DAH like '%''%' or XMMC like '%''%' or AJMC like '%''%' ) 
 and GDBZ='3' 
 and DAGUID  in (
 select * from table(split (:CLOB))
 )

其中split函数可以参考https://community.oracle.com/message/4558212,不过那个帖子的输入参数是varchar2.

如果你的数据库版本是oracle 11g的话,可以用xmltable函数替代 table(split())