易截截图软件、单文件、免安装、纯绿色、仅160KB

三种oracle分布查询方式的比较总结

 1.使用RowId
select * from emp where rowid in (
  select rid from (
    select rownum rn,rid from(
     select rowid rid from emp order by sal desc
    )where rownum<=10
  )where rn >=5
) order by sal desc;
--6行被选择耗时0.015秒,这种效率最高
select * from emp where rowid in (
  select rid from (
    select rownum rn,rid from(
     select rowid rid from emp order by sal desc
    )
  )where rn between 5 and 10
) order by sal desc;
--6行被选择耗时0.031秒
一般来说,第一个查询的效率比第二个高得多,这是由于CBO 优化模式下,Oracle可以将外层的查询条件推到内层查询中,以提高内层查询的执行效率。对于第一个查询语句,第3层的查询条件WHERE ROWNUM <= 10就可以被Oracle推入到内层查询中,这Oracle查询的结果一旦超过了ROWNUM限制条件,就终止查询将结果返回了。
2.使用分析函数
select * from (
  select t.*,row_number() over(order by sal desc) rn from emp t
)where rn between 5 and 10;
--6行被选择耗时0.031秒
3.使用RowNum
select * from (
  select t1.*,rownum rn from (
    select * from emp order by sal desc
  ) t1 where rownum<=10
) where rn>=5;
--6行被选择耗时0.032秒
select * from (
  select t1.*,rownum rn from (
    select * from emp order by sal desc
  ) t1
) where rn between 5 and 10;
--6行被选择耗时0.062秒 ,效率最底


相关文档:

[Oracle]高效的PL/SQL程序设计(三)

本系列文章导航
[Oracle]高效的PL/SQL程序设计(一)--伪列ROWNUM使用技巧
[Oracle]高效的PL/SQL程序设计(二)--标量子查询
[Oracle]高效的PL/SQL程序设计(三)--Package的优点
[Oracle]高效的PL/SQL程序设计(四)--批量处理
[Oracle]高效的PL/SQL程序设计(五)--调用存储过程返回结果集
[Oracle]高效的PL/SQL程序设计(六)- ......

[Oracle]高效的PL/SQL程序设计(五)

本系列文章导航
[Oracle]高效的PL/SQL程序设计(一)--伪列ROWNUM使用技巧
[Oracle]高效的PL/SQL程序设计(二)--标量子查询
[Oracle]高效的PL/SQL程序设计(三)--Package的优点
[Oracle]高效的PL/SQL程序设计(四)--批量处理
[Oracle]高效的PL/SQL程序设计(五)--调用存储过程返回结果集
[Oracle]高效的PL/SQL程序设计(六)- ......

Oracle中用一句SQL语句实现行列转换

SQL*PLus>   desc   emp;  
    名称                                                                   &nbs ......

oracle调用java程序连sqlserver2005

1、在oracle的sys-sysdba下登陆
写一个java source程序链接sqlserver2005:
create or replace and compile java source named test as
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class excutesql1
{
    public static String entry ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号