既然是你贴的那个语句慢,就只需要优化那个就行了。 SELECT Nvl(SUM(l.Churuksl), 0) sl INTO n_YaoPinXH2 FROM table1 l WHERE l.Churukfs IN ('67', '68', '59', '61') and l.Jiageid = prm_Jiageid AND (l.Jizhangrq> 开始日期 and l.jizhangrq< 结束日期); 你得看这个语句的执行计划,你建的索引是不是一直在启用,可以使用hint来规定执行计划。
SELECT Nvl(SUM(l.Churuksl), 0) sl
INTO n_YaoPinXH2
FROM table1 l
WHERE l.Churukfs IN ('67', '68', '59', '61')
and l.Jiageid = prm_Jiageid
AND (l.Jizhangrq> 开始日期 and l.jizhangrq< 结束日期);
你得看这个语句的执行计划,你建的索引是不是一直在启用,可以使用hint来规定执行计划。
其次,你贴的语句有限,如何优化就要好好看看执行计划了;
最后,你可以观察一下你的那些数据,可不可以通过函数先处理数据,然后在使用,尽量减少在sql中函数的调用。具体如何优化,可以贴更多的语句出来,让大家看看。