存储过程功能是循环对list遍历,对表进行插入操作,插入异常则进行修改操作。
可能为update语句执行慢,可是表里有主键,update时主键为条件,走主键应该不会慢。
单独把update语句拿出执行,不慢。
最终找出原因,list中对象用的为nvarchar而表里主键为varchar2,执行语句时Oracle会进行隐式转换,转换会导致索引无效,会导致update语句执行慢。
解决方法将手动进行转换把list遍历出来的值to_char。存储过程速度恢复秒级。
存储过程功能是循环对list遍历,对表进行插入操作,插入异常则进行修改操作。
可能为update语句执行慢,可是表里有主键,update时主键为条件,走主键应该不会慢。
单独把update语句拿出执行,不慢。
最终找出原因,list中对象用的为nvarchar而表里主键为varchar2,执行语句时Oracle会进行隐式转换,转换会导致索引无效,会导致update语句执行慢。
解决方法将手动进行转换把list遍历出来的值to_char。存储过程速度恢复秒级。
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。