java项目在生产环境中 for循环中含有oracle查询语句,循环查询特别慢,但在本地环境没问题

应该不是程序的问题,跟机器的配置应该也没有多大的关系,同样的war包,
在服务器部署之后for循环查询很慢很慢(整个循环下来大概需要30-60秒),而我在自己电脑
上测试发现for循环查询过程不到2秒,请问这个问题的解决思路大概在哪?是不是跟oracle
有关系?

6个回答

循环中调用查询一般是被禁止的,可以通过在循环外一次查询,然后map组装相应数据,在循环里面通过key取value的方式实现。具体参看下面的文章第二点:
https://blog.csdn.net/HXNLYW/article/details/81665072

已知条件太少无法判断。简单假设一个场景A,循环中的sql是条低效sql,但是生产环境有2千万条数据,而本地测试库有2千条数据;场景B,生产环境for循环loop了600次,本地环境loop了6次。

请不要把SQL语句放到循环里面,在循环外面初始化赋值,在循环里面使用即可

请不要把SQL语句放到循环里面,在循环外面初始化赋值,在循环里面使用即可,赞同他说的

基本上是索引和数据量不一样导致的,仔细检查下生产库和本地库的区别

本地测试环境用的内网肯定快了,生产环境丢在服务器上它的请求速度跟你服务器速度有关,你可以尝试着看一下把循环语句写在SQL中,或者看看循环查询能不能优化一下...这种解决方案还是跟你们业务有关系的。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!