如何快速从一个数千万条记录的表中随机抽取几条记录?select * from (select * from table1 order by dbms_ramdon.value) where rownum<10这样的sql非常慢,有没有实现效率高的,这个是随机抽取10条记录,在plsql中执行的时候速度还可以,但是在项目中运行的时候,速度超慢,生成这10条记录得花好几分钟,请各位高手指点一下,一定要效率,效率!!谢谢了

解决方案 »

  1.   

    在补充一下,我也想过sample这个方法,但是网上说此方法查出来的数据可能结果不太准。请大家好好考虑一下,主要是要效率,小弟在此谢了。
      

  2.   

    PL SQL Developer 中执行速度还可以的话,那说明不大会是 SQL 语句的效率关系,可能其他什么地方存在问题。
      

  3.   

    我是不太懂SQL,学习。想问一句:为啥不用top来选择,而是使用where呢?
      

  4.   

    比如说你存储在10张表里   table1--table10你查询的时候   表也是随即查出来    table+i   i为0--10之前的随机数然后在这张表里随即查10条记录