|

楼主 |
发表于 2008-10-23 12:14:22
|
显示全部楼层
修改后语句如下,整个执行小效率是天壤之别,差10几万倍
SELECT (select FPRIORITY from TTASK where FGUID = FTASKGUID) FPRIORITY,
(select FSUBJECT from TTASK where FGUID = FTASKGUID) FSUBJECT,
(select FCREATETIME from TTASK where FGUID = FTASKGUID) FCREATETIME,
(select FPLANSTARTTIME from TTASK where FGUID = FTASKGUID) FPLANSTARTTIME,
(select FPLANFINISHTIME from TTASK where FGUID = FTASKGUID) FPLANFINISHTIME,
(select FSTARTTIME from TTASK where FGUID = FTASKGUID) FSTARTTIME,
(select FFINISHTIME from TTASK where FGUID = FTASKGUID) FFINISHTIME,
(select FSTATE from TTASK where FGUID = FTASKGUID) FSTATE,
(select FGUID from TTASK where FGUID = FTASKGUID) FGUID,
(select FTYPE from TTASK where FGUID = FTASKGUID) FTYPE,
(select FFUNCURL from TTASK where FGUID = FTASKGUID) FFUNCURL,
(select FUPDATEFLAG from TTASK where FGUID = FTASKGUID) FUPDATEFLAG,
(select FPROCURL from TTASK where FGUID = FTASKGUID) FPROCURL,
(case
when (select fpriority from TTASK where FGUID = FTASKGUID) = 'tpHigh' then
'2'
when (select fpriority from TTASK where FGUID = FTASKGUID) = 'tpNormal' then
'1'
else
'0'
end) as MyField
FROM TTASKMESSAGE
WHERE (TTASKMESSAGE.FSTATE IN ('tmsSend', 'tmsReceived', 'tmsProcessing'))
AND (TTASKMESSAGE.FRORGURL IN
('\ROOT\350200000000.OGN\350203000000.OGN\350203200000.DPT\BAMJ.PTM\210197.PSM') OR
((TTASKMESSAGE.FRDEPT = '350203200000') AND
(TTASKMESSAGE.FRPOSITION = 'BAMJ') AND
(TTASKMESSAGE.FRPERSON = '210197')))
ORDER BY MyField Desc, FCREATETIME desc
我程序按照这个语句进行修改,不知道对程序否有其他的影响,请帮忙排查,X3代码中很多这样子类似执行效率低下的sql语句 |
|