Oracle如何快速查找第N条记录? Oracle如何快速查找第N条记录?比如,要查找第10000条记录,或是第100000条,怎么实现? 主键id可能不确定的条件下. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select * from (select rownum hh,* from tableName) where hh=10000 rownum=10000或者rownum=100000可以吗? 没法快速?晕,上次面试时被问到了,俺就是说rownum,然后他就说,如果要查第10万行或是更后面呢?岂不是很慢?我当时就迷糊了! 有法。就是用rownum,关键看你怎么用。是先分页再回表,还是先回表再分页,这样查第100万条数据也不会太慢。 那具体怎么分页呢? 感觉用rownum实现分页也不能在忧能上有什么优化啊. select object_name,object_type,owner from ( select object_name,object_type,owner, rownum rn from dba_objects where rownum < 10001 ) where rn >= 10000 ; Oracle 快速查找记录 rownum 不是说了吗?先分页,再回表。现在假设只查询第10W条记录,如果按楼上几位写的SQL,那么就不得不查询全部10W条记录,然后只返回一个值,即第10w行。这样效率当然低。而先分页,则是在索引上结合rownum和stopkey分页,快速定位第10w条记录,然后用rowid关联该行其他列,进行回表查询,这时就只查一条记录,然后返回这条记录。逻辑读将极大降低。具体SQL,我以前在论坛上回复过,你搜搜看。或者google下,这不是什么新问题了。 oracle10g 数据导入出错,各位老大帮帮忙 【BigDecimal类型】问题 redhat 5.0安装oracle 11g问题 WIN7无法安装ORACLE11g not exists在这个语句中怎么理解? oracle怎么使用回滚段的? —*—*—*—我的問題,保證快速結賬—*—*—*— 帮忙改正!!! 请教如何安装Orack9i for Windows oracel中表的导入和导出问题 创建嵌套表出错 oracle 存储过程 遇到个问题
rownum=10000或者rownum=100000可以吗?
晕,上次面试时被问到了,俺就是说rownum,然后他就说,如果要查第10万行或是更后面呢?岂不是很慢?
我当时就迷糊了!
是先分页再回表,还是先回表再分页,这样查第100万条数据也不会太慢。
select object_name,object_type,owner, rownum rn from dba_objects where rownum < 10001
)
where rn >= 10000 ;
现在假设只查询第10W条记录,如果按楼上几位写的SQL,那么就不得不查询全部10W条记录,然后只返回一个值,即第10w行。这样效率当然低。
而先分页,则是在索引上结合rownum和stopkey分页,快速定位第10w条记录,然后用rowid关联该行其他列,进行回表查询,这时就只查一条记录,然后返回这条记录。逻辑读将极大降低。具体SQL,我以前在论坛上回复过,你搜搜看。或者google下,这不是什么新问题了。