我有一张非常大的桌子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
然后获取与这些主键对应的记录。
然而,这仍然非常缓慢..
可以更有效地完成吗?
答案 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
效果很好。