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日--

  • 相关阅读:
    如何确定Kafka的分区数、key和consumer线程数
    Storm程序永久代内存溢出
    JVM堆内存相关的启动参数:年轻代、老年代和永久代的内存分配
    Git添加本地项目出现fatal: unable to get credential storage lock: File exists
    Kafka的通讯协议
    文件上传 数据对比
    jquery 弹出层
    XSS 简单理解之:AntiSamy
    XSS 简单理解
    超人说我最叼蝙蝠侠笑了 超级英雄战力排名
  • 原文地址:https://www.cnblogs.com/heyang78/p/12871931.html
Copyright © 2011-2022 走看看