我得到了一个查询SQL运行非常快的PLSQL,但当运行在项目上时,它变得非常非常慢,几乎5-6秒。这使得我的页面上的响应非常慢。
在这个项目中我们使用Mybatis,这个SQL在映射器文件中就像其他语句一样,在parameters -> java.lang.Long,resulttype -> xxx.DTO中,还有一件事,这是一个很大的SQL,它包括几个标签,每个标签都有它自己的绑定参数-> #{ PartyId,TYPE=jdbc.DECIMAL},但在参数PartyId中都是一样的。
当我在日志中抓取SQL并将其放入PLSQL中时,它的运行速度非常快,仅为0.47秒。
我也不知道原因。
发布于 2014-12-14 22:50:45
你能告诉我们在MyBatis上表现不佳的SQL查询吗?你在使用joins吗?通过删除不需要的列,我已经使一些查询更快了。大型结果集的处理速度非常慢,因为MyBatis必须单独设置所有对象的字段。
另一种策略是例如进行两个SQL查询,而不是一个非常大的查询。换句话说,不是将所有东西都连接在一起,而是尝试删除一个或两个连接,并使用单独的查询“连接”它们。值得一试的是,有多少连接是"OK“的,以及在什么时候执行时间(使用MyBatis或普通的SQL console)会变得太长。我已经在很多场合成功地使用了这个策略。
https://stackoverflow.com/questions/27470380
复制相似问题