gpt4 book ai didi

sql - 对 Oracle 数据库使用 ORDER BY dbms_random.value 时的性能问题

转载 作者:行者123 更新时间:2023-12-04 14:02:56 25 4
gpt4 key购买 nike

我需要从表中获取 1000 条随机行并找到 Oracle 的解决方案。但是,如果我在从包含大量行的表中检索数据时使用此查询,则最多需要 3 分钟才能完成:

SELECT column FROM
( SELECT column FROM table
ORDER BY dbms_random.value )
WHERE rownum <= 1000

发生这种情况是因为当我只需要 1000 行时,所有行都被选中,然后所有行都按随机值排序。是否有解决此类问题的方法?也许使用 dbms_random.value 以及一些将选择随机行的游标。

最佳答案

我会这样做:

SELECT column 
FROM table sample (1)
where rownum <= 1000
--ORDER BY dbms_random.value
;

将从表中获取 1% 的样本,在前 1000 个停止(并且,如果需要,随机订购)。

有可能存在一种更好的方式来实现你想要的。这就是我要尝试的。

关于sql - 对 Oracle 数据库使用 ORDER BY dbms_random.value 时的性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14621244/

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