以下是我的SQL语句,表上的数据量有40多万。
SELECT SUM (T032_FORM_SU) FROM T029_FORWARD_SIJI T029 INNER JOIN T032_FORWARD_SIJIM ON
T029_WAREH_CD = T032_WAREH_CD
AND T029_OWNER_CD = T032_OWNER_CD
AND T029_SHIPMENT_ID = T032_SHIPMENT_ID
AND T032_TRAN_KBN < '3'
WHERE
T029_WAREH_CD = ?
AND T029_OWNER_CD = ?
AND T029_SLIP_KBN <> '4'
AND T029_SLIP_KBN <> '5'
AND T029_SLIP_KBN <> '9'
AND T029_SHIPMENT_KBN = '01' AND T029.T029_TRAN_KBN < '3'
通过jdbc动态绑定参数执行要10多秒才能完成,但是如果在plsql中执行,条件直接付值,也就是0.1秒左右就好了。不知道这是什么问题,而且通过jdbc执行时,如果不动态绑定参数,直接付值的话也非常快,就是一动态绑定参数,就慢了,这是什么原因。
t029是主表,t032是明细表。 这两个表都建有索引。
SELECT SUM (T032_FORM_SU) FROM T029_FORWARD_SIJI T029 INNER JOIN T032_FORWARD_SIJIM ON
T029_WAREH_CD = T032_WAREH_CD
AND T029_OWNER_CD = T032_OWNER_CD
AND T029_SHIPMENT_ID = T032_SHIPMENT_ID
AND T032_TRAN_KBN < '3'
WHERE
T029_WAREH_CD = ?
AND T029_OWNER_CD = ?
AND T029_SLIP_KBN <> '4'
AND T029_SLIP_KBN <> '5'
AND T029_SLIP_KBN <> '9'
AND T029_SHIPMENT_KBN = '01' AND T029.T029_TRAN_KBN < '3'
通过jdbc动态绑定参数执行要10多秒才能完成,但是如果在plsql中执行,条件直接付值,也就是0.1秒左右就好了。不知道这是什么问题,而且通过jdbc执行时,如果不动态绑定参数,直接付值的话也非常快,就是一动态绑定参数,就慢了,这是什么原因。
t029是主表,t032是明细表。 这两个表都建有索引。
很正常
以前碰到过这个问题,也不知道说的对不对。关注~~~
而用PL/SQL返回的结果只是前几条记录。