oracle 取数据 高手帮忙 现在有一个表有几十万数据 每次从其中取出2500条最早创建的进行处理(表中有一列是自动生成的创建时间) 怎么取数据效率最高 每次都order by 很慢 都给点意见 没经验的也给点意见 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1,在创建时间上建立索引;2,在查询时使用 hint first_rows 同意1楼方案,索引加hint即可解决。 增加一列datenum,自动将时间转换成对应的数字,然后在此数字列上加索引倒序排列。每次都是order by datenum,这样不快多了啊? 我想楼主的意思不仅是只一次地查找2500条,而是每次取2500条,直接到取完为止..........不知道理解正确不.........楼主指的时间列是DATE格式还是STAMPTIME格式或者 VARCHAR2类型 ,是否可能存在重复...等等相关要考虑.关于为什么要每次取2500条,这个我有疑问,是担心效率问题而每次只取2500条? 你理解的很正确 就是每次取2500直到取完为止 时间格式是date 至于会不会出现重复我就不知道了因为是系统自动生成 重复的时候会带来什么危害我也不知道 可不可以跟我详细说说 至于为什么一次取2500条 是因为数据太多根本不可能一次处理玩 还有就是处理数据的时候往往是在指定的时间段处理 不一定非得是2500 但是不能全取 因为可能不能再指定时间内完成 在线等你解答 求大神指导SQL 求SQL语句 各位帮忙看看我这个分页的语句为什么这么慢呢?? 如何优化呢 存储过程里面动态查询sql语句,如何转义单引号? 监听不能启动 sqlserver转oracle时,group by 不能使用序列的解决办法? oracle视图外联语句问题 有关sqlldr命令的问题,不知道ctl文件该如果写,请高手帮忙. 触发器获取表单 我怎么取得日期型数据的月啊 去重复记录问题 请教plsql 中 select xxx into xxx 的一个问题
2,在查询时使用 hint first_rows
增加一列datenum,自动将时间转换成对应的数字,然后在此数字列上加索引倒序排列。每次都是order by datenum,这样不快多了啊?
你理解的很正确 就是每次取2500直到取完为止 时间格式是date 至于会不会出现重复我就不知道了因为是系统自动生成 重复的时候会带来什么危害我也不知道 可不可以跟我详细说说
至于为什么一次取2500条 是因为数据太多根本不可能一次处理玩 还有就是处理数据的时候往往是在指定的时间段处理 不一定非得是2500 但是不能全取 因为可能不能再指定时间内完成
在线等你解答