|
发表于 2007-11-22 11:59:01
|
显示全部楼层
我用下面的语句,执行时间为12.562秒
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
我用下面的语句,并去掉原and FDELETELEVEL = 0条件,只需要0.125秒
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 ))))
我用下面的SQL语句,将and FDELETELEVEL = 0改为to_char(FDELETELEVEL) = 0只需要0.156秒
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 to_char(FDELETELEVEL) = 0 |
|