zoukankan      html  css  js  c++  java
  • 十万大小的数据集,要从中选出最大的十个元素怎么做呢?

    怎么做,就是千万不要去写程序,因为你Oracle执行完成你才够打开编译器的.

    Solution:

    SQL> select b.* from (select a.*,rownum as rn from (select * from bigemp order by salary desc) a) b where b.rn<11;
    
            ID     SALARY         RN
    ---------- ---------- ----------
         58299      99998          1
         81565      99998          2
          8781      99996          3
         11017      99996          4
         46760      99996          5
         72216      99994          6
         52250      99993          7
         77820      99992          8
         19348      99990          9
         83024      99990         10
    
    已选择10行。
    
    已用时间:  00: 00: 00.06

    0.06秒,人家已经搞定了.这还是没有索引的情况!

    所有想把十万数据集从DB取出来用Java去算的都面壁三分钟去吧.

    全部SQL:

    SQL> create table bigemp(
      2      id number(6,0) primary key,
      3      salary number(6,0) not null);
    
    表已创建。
    
    
    SQL> insert into bigemp
      2  select rownum,dbms_random.value(0,100000) from dual
      3  connect by level<=100000;
    
    已创建100000行。
    
    SQL> commit;
    
    提交完成。
    
    SQL> select b.* from (select a.*,rownum as rn from (select * from bigemp order by salary desc) a) b where b.rn<11;
    
            ID     SALARY         RN
    ---------- ---------- ----------
         58299      99998          1
         81565      99998          2
          8781      99996          3
         11017      99996          4
         46760      99996          5
         72216      99994          6
         52250      99993          7
         77820      99992          8
         19348      99990          9
         83024      99990         10
    
    已选择10行。
    
    SQL> set timing on;
    SQL> select b.* from (select a.*,rownum as rn from (select * from bigemp order by salary desc) a) b where b.rn<11;
    
            ID     SALARY         RN
    ---------- ---------- ----------
         58299      99998          1
         81565      99998          2
          8781      99996          3
         11017      99996          4
         46760      99996          5
         72216      99994          6
         52250      99993          7
         77820      99992          8
         19348      99990          9
         83024      99990         10
    
    已选择10行。
    
    已用时间:  00: 00: 00.06

    --2020年5月11日--

  • 相关阅读:
    Linux sudo权限提升漏洞(CVE-2021-3156)复现
    CVE-2021-3129-Laravel Debug mode 远程代码执行漏洞
    maven项目在jenkins上以配置文件及Git分支作为参数执行构建
    jenkins 配置参数执行
    maven+java+tesng 遇到的坑
    IDEA的使用及初始化
    python发邮件之邮件内放入表格
    maven作用
    java自动化学习笔记
    在电脑端同时安装Python2,Python3
  • 原文地址:https://www.cnblogs.com/heyang78/p/12871931.html
Copyright © 2011-2022 走看看