从Oracle

时间:2018-04-26 10:31:01

标签: oracle large-data

我有一张非常大的桌子MY_TABLE(1亿行)。我希望从这张表中选择5个样本的样本。

我能想到的是获得5个任意主键,如下所示,这使用快速全扫描,如解释计划所示:

select MY_PRIMARY_KEY_COLUMN from (select MY_PRIMARY_KEY_COLUMN, rownum as rn from MY_TABLE) where rn <=5 

然后获取与这些主键对应的记录。

然而,这仍然非常缓慢..

可以更有效地完成吗?

1 个答案:

答案 0 :(得分:1)

看起来,我很困惑。正如评论者注意到的那样,查询应该没有问题

select * from MY_TABLE where rownum <=5

但我不知何故开始关注

select MY_PRIMARY_KEY_COLUMN from (select MY_PRIMARY_KEY_COLUMN, rownum as rn from MY_TABLE) where rn <=5

确实运行得非常慢..

很抱歉浪费每个人的时间,select * from MY_TABLE where rownum <=5效果很好。