0
如果可能的话,请你能帮助我的SQL,我需要优化的以下代码块,如果以迭代值更快。见下面的语句:的Oracle PL/FOR循环优化
for CONSULTANT_RECORD IN CONSULTANT_CURSOR LOOP /*Loop 2*/
VData := VData||crlf2||CONSULTANT_RECORD.USER_FIRSTNAME||' '||CONSULTANT_RECORD.USER_SURNAME;
vTOT_LOG_CLOSED4USER := 0;
vAVERAGE_DAY := 0;
vTOT_DAYS := 0;
for x in 1..vlastday loop /*Loop 3*/
select COUNT(DISTINCT LOG_NO) as "LOG_COUNT" INTO vLOG_COUNTER
FROM DMS_CRM.TBL_DMS_SERVICE_REQUESTS_HIST
WHERE LOG_STATUS = 'Resolved'
AND TO_CHAR(HIST_DATE_TIME_STAMP, 'MONTH,YYYY') = TO_CHAR(SYSDATE, 'MONTH,YYYY')
AND TO_CHAR(HIST_DATE_TIME_STAMP, 'DD') = lpad(to_char(x),2,'0')
AND OWNER_USER_ID IS NOT NULL
AND OWNER_USER_ID = CONSULTANT_RECORD.OWNER_USER_ID;
end loop;
END LOOP;
的问题开始在环评3发生,裸记住IM发展对甲骨文的应用程序门户,所以我不能运行的查询优化...我的表索引正确以及(如果有人想评论一下)。
Regards,
PS。谁也没有得到回我用自己版本的代码..........我仍然用这种:-(挣扎
不幸的是,vlastday不是一个集合,而是一个检索当天ie.28/* vlastday:= to_number(to_char(LAST_DAY(TO_DATE(sysdate)),'DD')); */ – user1630342
@ user1630342:好的,我明白了。这样你就可以创建一个数字集合,用值(1,2,...等)填充它,并执行加入这个集合的'SELECT'。而不是有31个“选择”,你将只有一个应该显着提高性能。 – a1ex07
我怎么去有关处理一个选择而不是多个选择(通过回路)..问题是,我已经重复多天的多个顾问......他们的价值观在整个天都不同,我也是递增的日期值在select语句中,以适应不同的日子.... ie./*AND TO_CHAR(HIST_DATE_TIME_STAMP,'DD')= lpad(to_char(x),2,'0')* / – user1630342