直接用语句查就挺快,用存储过程就需要5~6秒,怎么回事捏。
存储过程如下:
(
In_HPZL in varchar2,
In_HPHM in varchar2,
In_CLSBDH in varchar2,
OUT_HPZL OUT char,
OUT_HPHM OUT varchar2,
OUT_CLLX OUT varchar2,
OUT_SYR OUT varchar2,
OUT_CLPP OUT varchar2,
OUT_CLXH OUT varchar2,
OUT_CLSBDH OUT varchar2,
OUT_FDJH OUT varchar2,
OUT_ZS OUT varchar2,
OUT_RLZL OUT varchar2,
OUT_ZBZL OUT varchar2,
OUT_ZZL OUT varchar2,
OUT_GLBM OUT varchar2,
OUT_XZQH OUT varchar2,
OUT_CCRQ OUT varchar2,
OUT_CCDJRQ OUT DATE)
AS
BEGIN
if In_CLSBDH is null then
SELECT
HPZL,
HPHM,
CLLX,
SYR,
CLPP1,
CLXH,
CLSBDH,
ZS,
RLZL,
ZBZL,
ZZL,
GLBM,
XZQH,
CCRQ,
CCDJRQ
INTO OUT_HPZL,
OUT_HPHM,
OUT_CLLX,
OUT_SYR,
OUT_CLPP,
OUT_CLXH,
OUT_CLSBDH,
OUT_ZS,
OUT_RLZL,
OUT_ZBZL,
OUT_ZZL,
OUT_GLBM,
OUT_XZQH,
OUT_CCRQ,
OUT_CCDJRQ
FROM VEH_ADMIN.VEHICLE@jcxlink
where TRIM(HPZL)=In_HPZL and
TRIM(HPHM)=In_HPHM;
else
SELECT
HPZL,
HPHM,
CLLX,
SYR,
CLPP1,
CLXH,
CLSBDH,
ZS,
RLZL,
ZBZL,
ZZL,
GLBM,
XZQH,
CCRQ,
CCDJRQ
INTO OUT_HPZL,
OUT_HPHM,
OUT_CLLX,
OUT_SYR,
OUT_CLPP,
OUT_CLXH,
OUT_CLSBDH,
OUT_ZS,
OUT_RLZL,
OUT_ZBZL,
OUT_ZZL,
OUT_GLBM,
OUT_XZQH,
OUT_CCRQ,
OUT_CCDJRQ
FROM VEH_ADMIN.VEHICLE@jcxlink
where TRIM(CLSBDH)=In_CLSBDH;
end if;
END;
看的出你的存储过程使用了数据库连接,
网络的速度对查询也是有影响的,
另,你的查询条件能不能在字段上不要trim?或者加到变量上?
在查询条件的字段上建索引试试有没改观....
可能因为TRIM而使得索引不能用了吧