如何解决分页查询优化
分页查询优化
如果你能给出你的见解,那将是一个真正的帮助。
我有一个带有多个连接和过滤条件的查询,结果被排序,最后只检索到 100 条记录。哪个更有效?
选项 1:
select * from
( SELECT INTR.col1 AS ID
FROM INTR,TR,J
WHERE
INTR.col1 > ?
AND ........
AND ........
AND ........
ORDER BY INTR.col1
)
where rownum <= 100;
选项 2:
SELECT INTR.col1 AS ID
FROM INTR,J
WHERE
INTR.col1 > ?
AND ........
AND ........
AND ........
AND rownum <= 100;
如果我们可以摆脱排序并尽快选择100条记录,则选项2将是更好的选择。我如何确认?请帮忙。
解决方法
选项二更preformant,原因很明显,您不需要排序。
缺点(通常也是需要第一个选项的原因)是第二个选项提供不稳定的结果,即您每次可能得到不同的 100 行如果您的数据不变,则事件。
顺便说一句,Oracle 可以优化第一个选项,您无需对整个游标结果进行排序,而只需找到前 N 行并将它们排序返回。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。