gpt4 book ai didi

sql - 处理大表 - 如何逐页选择记录?

转载 作者:行者123 更新时间:2023-12-04 06:39:07 27 4
gpt4 key购买 nike

我需要对表中的所有记录进行处理。该表可能非常大,所以我宁愿逐页处理记录。我需要记住已经处理过的记录,所以没有包含在我的第二个 SELECT 结果中。

像这样:

对于第一次运行,
[从 MyTable 中选择 100 条记录]

对于第二次运行,
[从 MyTable 中再选择 100 条记录]

等等..

我希望你能得到这张照片。我的问题是如何编写这样的选择语句?

顺便说一句,我正在使用 oracle,但是如果我也可以在任何其他数据库上运行,那就太好了。
我也不想使用存储过程。

非常感谢!

最佳答案

您想出的任何将表格分成更小的块的解决方案,最终都将花费更多的时间,而不仅仅是一次性处理所有内容。除非表已分区并且您一次只能处理一个分区。

如果全表扫描需要 1 分钟,那么将表拆分为 10 块需要 10 分钟。如果表行是按您可以使用的索引列的值物理排序的,这将由于集群因素而有所改变。但无论如何,它比一次性处理它需要更长的时间。

当然,这一切都取决于处理表中的一行需要多长时间。您可以选择通过处理数据块来减少服务器上的负载,但从性能角度来看,您无法击败全表扫描。

关于sql - 处理大表 - 如何逐页选择记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4486194/

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