select FGUID from TORGSYSTEM where fguid in
(SELECT b.fguid FROM TORGSYSTEM b, TORGSYSTEM a where a.FGUID IN
(SELECT FGUID FROM TORGSYSTEM WHERE
(FGUID in
(select FGUID from TORGINDEX where UPPER(FID) = 'ORGUNIT.FUNCREF'
and UPPER(FVALUE) = '\YTSBGLXT\DXLSQDWSH.FUNC'))) AND
b.FGUID IN (SELECT FGUID FROM TORGSYSTEM WHERE ( (UPPER(FFILENAME) LIKE '%.PSM') ))
AND ((( (b.FPATH LIKE a.FPATH || a.FID || a.FKIND || '\%') OR ((a.FKIND = '.PTN')
AND ((b.FID = a.FID AND b.FKIND = '.PTM')
OR (b.FPATH || b.FID || b.FKIND LIKE '%\' || a.FID || '.PTM' || '\%'))) )
OR ( a.FPATH || a.FID || a.FKIND = b.FPATH || b.FID || b.FKIND ))))
and FDELETELEVEL = 0
而
select FGUID from TORGSYSTEM where fguid in
(SELECT b.fguid FROM TORGSYSTEM b, TORGSYSTEM a where a.FGUID IN
(SELECT FGUID FROM TORGSYSTEM WHERE
(FGUID in
(select FGUID from TORGINDEX where UPPER(FID) = 'ORGUNIT.FUNCREF'
and UPPER(FVALUE) = '\YTSBGLXT\DXLSQDWSH.FUNC'))) AND
b.FGUID IN (SELECT FGUID FROM TORGSYSTEM WHERE ( (UPPER(FFILENAME) LIKE '%.PSM') ))
AND ((( (b.FPATH LIKE a.FPATH || a.FID || a.FKIND || '\%') OR ((a.FKIND = '.PTN')
AND ((b.FID = a.FID AND b.FKIND = '.PTM')
OR (b.FPATH || b.FID || b.FKIND LIKE '%\' || a.FID || '.PTM' || '\%'))) )
OR ( a.FPATH || a.FID || a.FKIND = b.FPATH || b.FID || b.FKIND )))
and a.FDELETELEVEL = 0)
速度不到1秒。
在我们这里验证这两种情况执行速度是一样的。怀疑是oracle版本的问题,优化机制不一样?
已经提交开发部门处理。谢谢楼主提供的信息。