存储过程功能是循环对list遍历,对表进行插入操作,插入异常则进行修改操作。
可能为update语句执行慢,可是表里有主键,update时主键为条件,走主键应该不会慢。
单独把update语句拿出执行,不慢。
最终找出原因,list中对象用的为nvarchar而表里主键为varchar2,执行语句时Oracle会进行隐式转换,转换会导致索引无效,会导致update语句执行慢。
解决方法将手动进行转换把list遍历出来的值to_char。存储过程速度恢复秒级。
存储过程功能是循环对list遍历,对表进行插入操作,插入异常则进行修改操作。
可能为update语句执行慢,可是表里有主键,update时主键为条件,走主键应该不会慢。
单独把update语句拿出执行,不慢。
最终找出原因,list中对象用的为nvarchar而表里主键为varchar2,执行语句时Oracle会进行隐式转换,转换会导致索引无效,会导致update语句执行慢。
解决方法将手动进行转换把list遍历出来的值to_char。存储过程速度恢复秒级。
转载于:https://www.cnblogs.com/wangxingya/p/10131088.html