update cdsia set INEN = ${INEN} where cuno=${cuno} and INEN IS NULL;
update cdsia set SSEX = ${SSEX} where cuno=${cuno} and SSEX IS NULL;
……
update cdsia set BDAY = ${BDAY} where cuno=${cuno} and BDAY IS NULL;
以上是待合并的语句:
一下为合并后语句:
UPDATE cdsia set cnno = CASE WHEN (cnno IS NULL OR TRIM(cnno)='') THEN '${CNNO}' else cnno end,
stdt = CASE WHEN (stdt IS NULL OR TRIM(stdt)='') THEN '${STDT}' else stdt end,
eddt = CASE WHEN (eddt IS NULL OR TRIM(eddt)='') THEN '${EDDT}' else eddt end
WHERE cuno = '${CUNO}';
这样可以将多条update语句合并为一条,以提高执行效率。
下面是效率比较:
写道
我的测试结果:
执行1000次,多句UPDATE:
real 0m41.90s
user 0m8.89s
sys 0m8.16s
单句UPDATE:
real 0m37.33s
user 0m8.26s
sys 0m7.47s
执行100次,多句UPDATE:
real 0m4.57s
user 0m0.89s
sys 0m0.81s
单句UPDATE:
real 0m3.69s
user 0m0.83s
sys 0m0.75s
执行1000次,多句UPDATE:
real 0m41.90s
user 0m8.89s
sys 0m8.16s
单句UPDATE:
real 0m37.33s
user 0m8.26s
sys 0m7.47s
执行100次,多句UPDATE:
real 0m4.57s
user 0m0.89s
sys 0m0.81s
单句UPDATE:
real 0m3.69s
user 0m0.83s
sys 0m0.75s