我得到一个查询SQL在PLSQL中运行速度非常快,但是在项目上运行它变得非常慢,差不多5-6秒。这对我的网页反应非常缓慢。
在这个项目中我们使用Mybatis,这个SQL在mapper文件中就像其他语句一样,参数 - > java.lang.Long,resulttype - > xxx.DTO,有一个 更多的事情,这是一个大型的SQL,它包含几个标签,每个标签都有自己的绑定参数 - > #{partyId,TYPE = jdbc.DECIMAL},但在参数PartyId中完全相同。
当我在日志中编写SQL并将其放入PLSQL时,它运行速度非常快,只有0.47秒。
我不知道为什么。
答案 0 :(得分:0)
你能给我们一些在MyBatis上表现不佳的SQL查询吗?你在使用连接吗?通过删除不需要的列,我提高了一些查询速度。由于MyBatis必须设置所有对象,因此处理大型结果集的速度非常慢。各个领域。
另一种策略是制作两个SQL查询而不是一个非常大的SQL查询。换句话说,不是将所有内容连接在一起,而是尝试删除一个或两个连接,然后加入"他们使用单独的查询。值得一试的是,有多少联合是"好的"以及执行时间(使用MyBatis或普通SQL控制台)在什么时候变得太长。我在很多场合都成功地使用了这个策略。