美文网首页
开发中的问题记录一下

开发中的问题记录一下

作者: kangyiii | 来源:发表于2017-06-21 18:41 被阅读0次

今天发现自己之前写的一些SQL查询在执行效率方面非常不理想,于是尝试做了些改进。

需求为查询国地税表和税源表中,国税有而税源没有的条目数,之前的查询如下:

SELECT COUNT(NAME)
       FROM(SELECT TAX_INFO_GD.NAME,
                    TAX_INFO.NSR,
                    TAX_INFO_GD.SH_ID,
                    TAX_INFO.SHXYDM,
                    TAX_INFO_GD.SYLX,
                    TAX_INFO_GD.JDXZ,
                    TAX_INFO_GD.STATE GDSTATE
               FROM TAX_INFO_GD
               LEFT JOIN TAX_INFO
                 ON TAX_INFO_GD.NAME = TAX_INFO.NSR
                OR TAX_INFO_GD.SH_ID = TAX_INFO.SHXYDM)
      WHERE NSR is null
        and SHXYDM is null
        and (SYLX = 2 OR SYLX = 3)
        and GDSTATE='正常';
代码一执行效果

改进过后的代码:

SELECT COUNT(*)
     FROM TAX_INFO_GD B
     WHERE (SELECT COUNT(1) ASnum
           FROM TAX_INFO A
          WHERE A.NSR = B.NAME
            AND A.SHXYDM = B.SH_ID) = 0
    AND B.STATE = '正常'
    AND (B.SYLX = '2' OR B.SYLX = '3');
代码二执行效果

两段查询语句查询出的结果是一样的

第一种查询思路是先将国地税表和税源表做左链接,这也就意味着形成的临时表是以国地税表为主体,将税源表所有字段横向追加到国地税表中的一张大表,比国地税表的字段数量更多。在形成这张临时表之后再做一次符合条件的查询。

而第二种查询方式的主体思路是先在一张表中筛选,筛选出的数据就是另外一张表的查询条件。

这里只有结果,不做结论,因为orcale内部是何种数据结构如何运行我不得而知,贸然的主观猜测可能会误人子弟。

相关文章

  • 开发中的问题记录一下

    今天发现自己之前写的一些SQL查询在执行效率方面非常不理想,于是尝试做了些改进。 需求为查询国地税表和税源表中,国...

  • iOS14适配

    开发中遇到的问题, iOS14已经发布,记录一下开发中遇到的问题.不定时更新,欢迎大家评论补充. iOS14适配总...

  • Flutter开发 - 今日总结

    前言 最近忙了一段时间,没有记录Flutter开发过程中遇到的问题,今天抽点时间做个总结,记录一下开发经验! 开发...

  • Adapter.notifyDataSetChanged与Lis

    笔者在实际开发中碰到的问题,在这里记录一下 描述一下 碰见的问题:在一个listview页面中,onResume(...

  • toString方法中遇到的问题

    问题描述 在开发的过程中,遇到toString这个方法,就记录一下使用的过程中遇到的问题。 稍微修改一下 由此可以...

  • 学习开发第一个Android应用遇到的问题

    最近想学习一下安卓,把学习过程中遇到的问题记录一下。 开发环境 用的MAC本做的开发,开发Android应用,必然...

  • android.content.res.Resources$No

    记录一下被坑的小问题 Android开发中,遇到这个错误android.content.res.Resources...

  • 小程序开发中的一些问题

    记录一下开发中遇到的小程序问题 问题目录 CanvasContext.fillText自动换行 当某个页面关闭时返...

  • 记录开发中遇到的问题

    1.网络请求 iOS开发中基本都是使用的AFN网络库(OC),参数都是一个字典类型,这次服务端要一个字典下包含一个...

  • 记录开发中遇到的问题

    1、问题:当往plist文件中写操作时,控制台打印如下错误,[User Defaults] attempt to ...

网友评论

      本文标题:开发中的问题记录一下

      本文链接:https://www.haomeiwen.com/subject/ksmtcxtx.html