SELECT *
  FROM (SELECT row_.*, ROWNUM rownum_
          FROM (SELECT id, name, sex, age FROM USER_INFO ORDER BY id DESC ) row_ WHERE ROWNUM <= 15 + 15) 
 WHERE rownum_ > 15PL/SQL查询结果要5秒 请问能否优化? 已对 id 创建索引

解决方案 »

  1.   

    试试
    SELECT rowid_ FROM
     (SELECT row_.rowid_, ROWNUM rownum_
       FROM (SELECT rowid rowid_ FROM USER_INFO where id>0 ORDER BY id DESC )row_
        WHERE ROWNUM <= 15 + 15) 
     WHERE rownum_ > 15最外面加上select * from USER_INFO where rowid in (...) order by id desc
      

  2.   

    SELECT * FROM (
      SELECT *  FROM (
      
        SELECT ROWNUM S,id, name, sex, age FROM USER_INFO ORDER BY id DESC 
        
        ) row_ WHERE row_.S > 15) 
     WHERE ROWNUM <= 15+15