最近入库的n条纪录
---------
在插入数据时,可以考虑用个id什么的作为关键字。不过正常来说,不是关键字的索引速度应该慢点,不过应该可以接受,考虑事不是程序的问题。或者,可以创建视图什么的来提高查询速度。

解决方案 »

  1.   

    加个入库时间reg_time,依据reg_time正序排列,选择最后n条。select content,reg_time 
    from 
      select content,reg_time,rownum row_id 
      from 
        (select content,reg_time from :tab1 order by reg_time) a,
        (select count(*) row_max from tab1) b
    where row_id between b.row_max-:n and b.rowmax
    或按入库时间倒序排列取最前面n条,再倒序比较一下速度。加了倒序的要稍微慢一点。
    还有最快的当然是耕具ROWID来查询。
      

  2.   

    用orader by 语句的确慢,若存在索引更加慢
      

  3.   

    你没有用到关键字可能是会慢一点,再做order by会更慢,
    你可以考虑在入库单号+入库时间上建立索引
      

  4.   

    用ROWID是不是要好些呢?另外:ROWID是否是按入库顺序生成的?
      

  5.   

    另一个问题:我现在用存储过程查询数据,他提示:ora_24338出错。这是什么错阿?