法一: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数据库中两种实现采样的方法:通过ROWNUM限制和使用SAMPLE选项。ROWNUM方式适用于简单采样需求,而SAMPLE则能指定百分比进行更灵活的采样,但不适用于表连接场景。
942

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



