查询优化求助:两个查询合二为一提高运行速度
我有问题如下:
我需要判断某条记录是否存在然后去取值,表名和查询条件是一样的,我用了两个语句写,但执行感觉有些慢,想优化,哪位高人指点下。
例:
declare isnum number;
declare vf1 char(10);
declare vf2 char(10);
Select count(*) into isnum from table1 where id=:new.id;
if isnum>0 then
Select f1,f2 into vf1,vf2 from tabel1 where id=:new.id;
end if;
以上能否优化合成一个语句执行?
问题点数:50、回复次数:3Top
1 楼njhart2003()回复于 2005-07-25 21:50:00 得分 40
倘若是我做的话,我会习惯用隐式游标,如:
declare
vf1 varchar2(10);
vf2 varchar2(10);
begin
for x in (select f1,f2 from table1 where id=:new.id) loop
... -- 若有值,就在循环体内处理;若没有也不会报异常错误...
end loop;
end;
/
Top
2 楼wupangzi(无本之木)回复于 2005-07-26 00:50:38 得分 10
同意 njhart2003的观点!也可以直接用游标的方法!
Top
3 楼RaincyXP(早起的鸟儿)回复于 2005-07-26 00:54:24 得分 0
谢谢!速度提高了些!Top




