gpt4 book ai didi

java - 使用 JDBC 滚动策略对表格数据进行分页是否会导致性能下降?

转载 作者:行者123 更新时间:2023-12-02 08:30:45 25 4
gpt4 key购买 nike

我们目前有一个系统,可以在屏幕上显示页面表格数据,而用户界面中没有任何分页支持。它运行在 Java 1.5/Spring JDBC/T-SQL 存储过程/SQLServer 2000 堆栈上。

无法跳过结果集中的行(不使用动态 SQL 时 SQLServer 2K 的限制);我正在探索让数据层选择所有行并让 DAO 层滚动跳过的行页面,然后只读取一页的行的选项。

我的问题是这样的:

与返回所有行的当前状态相比,此更改会带来多少性能增益(就数据库 CPU 和 I/O 而言)?

我知道数据库和应用程序之间只有一页数据通过线路传输,但我很想知道 DBMS 内部会发生什么。假设查询计划已经缓存,如果我只想要第 41 页,DBMS 是否会跳过前 40 页结果的处理?

我想我想知道即使光标将跳过结果集的前 x 页,我们是否会产生大量成本。

最佳答案

如果您有 BTree(索引,集群或非集群),那么转到页面 X 的唯一方法是知道页面上的键并直接查找它。 所有“跳过”前 X-1 页的方法都必须遍历从 1 到 X 的所有页面,并单独跳过每条记录。 “分页”字段上的窄索引可以帮助计数,因为高密度槽(因此窄索引)减少了必须扫描以查找第 X 页开头的行的页数。

关于java - 使用 JDBC 滚动策略对表格数据进行分页是否会导致性能下降?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3436846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com