帮我看看这个排序 select * From Book Order by uId Book表中有30个字段,5万条记录,在三个字段上建了索引,在pl/sql中查询时候需要等待25秒才能看到结果,而把后面的排序order by uId去掉,能够马上显示,用explain plan查看cost的值分别为28275 和 162,为什么排序查询需要这么久?高人来分析一下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 order by 需要把所有数据读取出来,然后一个个排序,速度当然慢了。直接读的外,只是读取第一个block,速度当然快。不要动不动用explain plan。这个问题只需要一点点常识而已。 排序成千上万的纪录,再快都有限。不是必要最好少用order by。 oracle 的取数据功能是在SGA内存区完成的。这个完成的时间是你不加order by 的时间。对于order by ,oracle 是不在SGA中做,是在PGA是做,如果数据量大,就会占用临时表空间,排完后,再释放表空间。所以,如果排序的时间太长,可以适当增加临时表空间。 要提高排序速度,方法之一就是修改sort_area_size这样的参数,不过提高也是有限的,关键还是应用设计。 UID上有没有建立索引啊。对于你这个建立索引应该有影响。 Uid 上建了索引,测试时候将索引建在Book表所在的表空间,又尝试将索引建立在单独的表空间,查询还是很慢 whqcfp(whqcfp) 说的没错, 顶一下 执行awrrpt.sql数据库巡检时,输入snapshots id时提示错误 选课系统数据库设计 谁知道wavecom短信猫连接oracle的配置么? 网上全都是sqlserver和access的,求oracle的啊!! 请知道toad的人进,一个关于TOAD字符的问题? 查询出某列的总和 如何查询 诚心求教,在Oracle中能否实现这个功能。 用注释来大幅提升查询速度“/*+ STAR */” ,谁能给个解释呢? 如何在linux下远程添加新的listener 如何 使用 用PowerDesign 生成文档 ? 急!!:oracle 插入数据的问题 不用order by的排序问题
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货