法一:select * from (select * from fem_parties sample(Sample_Percent) )where rownum < = n;
法二:select * from fem_parties where rownum<= n order by dbms_random.value
order by dbms_random.value的效率低
SAMPLE选项:
当按行采样来执行一个采样表扫描时,Oracle从表中读取特定百分比的记录,并判断是否满足WHERE子句以返回结果。
SAMPLE BLOCK选项:
使用此选项时,Oracle读取特定百分比的BLOCK,考查结果集是否满足WHERE条件以返回满足条件的纪录.
Sample_Percent:
Sample_Percent是一个数字,定义结果集中包含记录占总记录数量的百分比。
Sample值应该在[0.000001,99.999999]之间。
主要注意以下几点:
1.sample只对单表生效,不能用于表连接和远程表
2.sample会使SQL自动使用CBO
本文介绍了两种在Oracle数据库中进行采样查询的方法:一种是使用SAMPLE选项,它可以通过指定百分比来选择表中的部分记录;另一种是通过ROWNUM结合随机排序进行采样。此外还对比了两种方法的性能差异。

被折叠的 条评论
为什么被折叠?



