我是数据库的新手。我想在大表上使用实现分页,rowid
但我发现rowid
可以是字母数字,但不一定按任何顺序排列,所以我想知道我们是否可以使用它们对表进行分页。我想从中获取分页记录的表是一个非常大的表,有超过 20 亿条记录,如果我们根据偏移量和长度执行查询,则会出现错误 Ora1652 无法扩展表空间临时中的临时段. 那么有没有办法使用rowid
.
任何帮助将不胜感激提前谢谢你。
编辑:
假设我有一个表说LARGE_ROWS
有ID
两RANDOM
列,而ID
是主键列。
SELECT /*+ ordered use_nl(p s) */
*
FROM
(
SELECT
ROWNUM RN,
RD
FROM
(
SELECT
ROWID RD
FROM
large_rows
ORDER BY
large_rows.id
) T
WHERE
ROWNUM < 1000
) P,
large_rows S
WHERE
RN > 900
AND P.RD = S.ROWID;