这条SQL得性能考虑

badtank 2003-08-21 09:20:36
select code,name from (select rownum r_id,id,code,name from mytable order by code desc) where r_id >=10000 and r_id<=11000

mytable中有ID,Code,Name等若干字段,这里面只是显示了Code和Name字段
因为要考虑到大数据量的情况,至少会有10万条记录,甚至更多。

我想知道的是(select rownum r_id,id,code,name from mytable order by code desc)这段SQL语句是做的全表搜索还是参照了后面的Where 语句进行的搜索?

...全文
22 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
juqiang 2003-08-22
  • 打赏
  • 举报
回复
upupup!!!
ai_daoluan 2003-08-22
  • 打赏
  • 举报
回复
偶来学习学习,顶!!!
sxh401 2003-08-22
  • 打赏
  • 举报
回复
up
badtank 2003-08-21
  • 打赏
  • 举报
回复
to LGQDUCKY(飘) ( )
其实这个语句的目的是利用rownum这个伪列来进行分页获取数据。
所以有r_id >=10000 and r_id<=11000 这个where条件来约束获得从10000开始到11000的
1001条数据。
这个伪列能加索引么?

to donnie_xu(donnie_xu)
你写的这个玩艺儿测试没测试过?我在9I下测试了一下,不通过。
badtank 2003-08-21
  • 打赏
  • 举报
回复
up[
donnie_xu 2003-08-21
  • 打赏
  • 举报
回复
select code,name from (select rownum r_id,code,name from mytable where r_id >=10000 and r_id<=11000 order by code desc)
LGQDUCKY 2003-08-21
  • 打赏
  • 举报
回复
如果WHERE条件里的字段没有索引,那它就对全表搜索,
所以对大表来说,索引是十分重要的。。
badtank 2003-08-21
  • 打赏
  • 举报
回复
高手们,指导一下吧。
在SQL Server中还有一个参数设置 set rowcount number来设定select影响到的行数
在Oracle中不会没有类似的功能设置吧
pluto74 2003-08-21
  • 打赏
  • 举报
回复
应该是全表搜索。
badtank 2003-08-21
  • 打赏
  • 举报
回复
to jametong(jametong)
刚才不知道是怎么回事提示“通讯通道的文件结束”
现在是没有问题了,
假如有200000条记录,每页显示20条,你这个方式会随着页码越靠后,处理的数据量越大,
速度也就下降了。不过,目前为止,你这个方式还是最好的了。

高手们,还有没有更好的建议呢?
badtank 2003-08-21
  • 打赏
  • 举报
回复
to jametong(jametong)
我怎么一运行你这段SQL就提示“通讯通道的文件结束”呢??
to beckhambobo(beckham)
分页处理数据需要进行排序阿。
另外,你这个语句里面的over(order by code desc) 是什么意思? 能否解释一下?
jametong 2003-08-21
  • 打赏
  • 举报
回复
用下面的语句应该是最快的
select /* + first_rows */ code,name from mytable where rownum < 11000
minus
select code ,name from my_table where rownum < 10000;
beckhambobo 2003-08-21
  • 打赏
  • 举报
回复
这句会快些,但只取出结果,没有进行排序
select code,name from (select row_number() over(order by code desc) rm,id,code,name from mytable) where r_m>=10000 and rm<=11000
badtank 2003-08-21
  • 打赏
  • 举报
回复
upupup

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧