KSQL脚本写法不佳导致EAS系统升级超慢
所属模块系统性能
适用版本EAS 6.0, EAS 7.0.1, EAS 7.0.2及之后版本
问题描述KSQL脚本写法不佳导致EAS系统升级超慢。对应的一条sql语句如下所示:UPDATE t_cas_paymentbill SET (fsourcebillid) = (SELECT t2.fsourcebillid FROMt_cas_paymentbillentry T2 WHERE t2.fpaymentbillid = t_cas_paymentbill.fid ANDROWNUM <= 1) WHERE EXISTS (SELECT t2.fsourcebillidFROM t_cas_paymentbillentry T2 WHERE t2.fpaymentbillid = t_cas_paymentbill.fidAND ROWNUM <= 1); (当前问题出现的环境:AIX 系统+ORACLE 10G)
适用版本EAS 6.0, EAS 7.0.1, EAS 7.0.2及之后版本
问题描述KSQL脚本写法不佳导致EAS系统升级超慢。对应的一条sql语句如下所示:UPDATE t_cas_paymentbill SET (fsourcebillid) = (SELECT t2.fsourcebillid FROMt_cas_paymentbillentry T2 WHERE t2.fpaymentbillid = t_cas_paymentbill.fid ANDROWNUM <= 1) WHERE EXISTS (SELECT t2.fsourcebillidFROM t_cas_paymentbillentry T2 WHERE t2.fpaymentbillid = t_cas_paymentbill.fidAND ROWNUM <= 1); (当前问题出现的环境:AIX 系统+ORACLE 10G)
原因分析 1.KSQL语句会自动带上一些附加条件,这些条件会影响整体性能。2.KSQL语句的写法不是最佳:update语句跟普通select语句是不一样的,它的原理是一条一条更新记录,则where条件也要每更新一条记录,过滤一次,如果里面有几十万条记录,则要过滤几十万次。大大的耗用了cpu的时间。
解决方法将KSQL的写法改为标准SQL的写法来提升升级脚本执行的速度。修改的地方有:1.把where条件去掉,改为用NVL( ,fsourcebillid)。2.ROWNNUM<=1 改为了 ROWNUM=1 减少了CPU的时间。3.运用上t2.fpaymentbillid这个索引。修改后的sql语句如下所示: UPDATE t_cas_paymentbill SET (fsourcebillid) = NVL((SELECT t2.fsourcebillid FROM t_cas_paymentbillentryT2 WHERE t2.fpaymentbillid = t_cas_paymentbill.fid AND ROWNUM = 1),fsourcebillid);
关键字升级KSQL脚本更新超慢
KSQL脚本写法不佳导致EAS系统升级超慢
所属模块系统性能适用版本EAS 6.0, EAS 7.0.1, EAS 7.0.2及之后版本问题描述KSQL脚本写法不佳导致EAS系统升级超慢。对应的一条sql语句...
点击下载文档
本文2024-09-16 22:40:08发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-49607.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章