Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

严重BUG,使用sqlserver时,分页查询因为ORDER BY前的空行导致查询缓慢的问题 #821

Open
tri5m opened this issue Jun 14, 2024 · 8 comments

Comments

@tri5m
Copy link

tri5m commented Jun 14, 2024

异常模板

image
在使用sqlserver数据库使用方言sqlserver2012的时候,当模板的ORDER BY前有空行的时候查询非常慢以至于很多时候查不出来,
当去掉ORDER BY前面的空行时速度就很正常。现在不知道是Pagehelper还是Mybatis的BUG,
我使用的框架是TkMybatis和Pagehelper的组合。

经过测试,在查询最后一页时触发该问题

Page<xxx> page = PageHelper.startPage(ro.getPageIndex(), ro.getPageSize(),
                totalCount == null)) {
            page.doSelectPage(() -> xxxMapper.getxxx(xxx);
@tri5m tri5m changed the title 严重BUG,使用sqlserver的试试分页查询因为xml中的空行导致查询缓慢的问题 严重BUG,使用sqlserver时,分页查询因为ORDER BY前的空行导致查询缓慢的问题 Jun 14, 2024
@tri5m tri5m closed this as not planned Won't fix, can't repro, duplicate, stale Jun 14, 2024
@tri5m tri5m reopened this Jun 14, 2024
@abel533
Copy link
Collaborator

abel533 commented Jun 14, 2024

把最终执行的SQL用mybatis直接的方式或者JDBC的方式测试看看。

@tri5m
Copy link
Author

tri5m commented Jun 14, 2024

@abel533 当我把ORDER BY子句删掉后抛出异常:
image

@tri5m
Copy link
Author

tri5m commented Jun 14, 2024

这个错误似乎是正常的,好像sqlserver2012分页的情况下SQL语句必须要有ORDER BY子句

@tri5m
Copy link
Author

tri5m commented Jun 14, 2024

@abel533 经过我的测试,用Mybatis原生拼接分页参数查询没有任何问题。

@tri5m
Copy link
Author

tri5m commented Jun 21, 2024

不知道触发这个情况的机制是什么,在ORDER BY前面添加空行或者删除空行都会大概率触发查询最后一页非常缓慢的问题,查看生成的SQL发现也没有问题,就是非常缓慢,如果不使用PageHelper直接拼接分页参数就不会出现类似问题。

@LSL1618
Copy link

LSL1618 commented Jun 24, 2024

我在自己的项目里测试了一下,无法复现你的问题,查起来都挺快的。

@abel533
Copy link
Collaborator

abel533 commented Jun 25, 2024

这种bug只能在你可以复现的环境来定位问题。

@tri5m
Copy link
Author

tri5m commented Jun 25, 2024

能否安排时间一起看一看,或者我加个你的qq群,最近在编写solon相关的代码,我有时间再去调试一番这个问题。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants