亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

避免對索引列進行計算

系統 2034 0
原文: 避免對索引列進行計算

操作系統:Windows 2007

數據庫版本:SQL SERVER 2005

發表日期:2014-11-07?16:56:01

今天同事讓我看一條SQL,說是在前臺查詢很快,但是把SQL取出來,在數據庫中執行的時候,跑10分鐘都不出結果。

看了一下SQL,最后定位到一個視圖中的一個子查詢上面。該子查詢的SQL文本如下:

      
        SELECT
      
      
          acinv_07.id_item ,

        
      
      
        SUM
      
      
        (acinv_07.dec_endqty) dec_endqty


      
      
        FROM
      
      
            acinv_07


      
      
        WHERE
      
         acinv_07.fiscal_year 
      
        *
      
      
        100
      
      
        +
      
      
         acinv_07.fiscal_period 

        
      
      
        =
      
       ( 
      
        SELECT
      
      
        DISTINCT
      
      
        

                   ctlm1101.fiscal_year 
      
      
        *
      
      
        100
      
      
        +
      
      
         ctlm1101.fiscal_period

                   
      
      
        FROM
      
       ctlm1101 
      
        WHERE
      
       flag_curr 
      
        =
      
      
        '
      
      
        Y
      
      
        '
      
      
        AND
      
       id_oprcode 
      
        =
      
      
        '
      
      
        acinv
      
      
        '
      
      
        AND
      
       acinv_07.id_wh 
      
        =
      
      
         ctlm1101.id_table)


      
      
        GROUP
      
      
        BY
      
       acinv_07.id_item
    

在acinv_07表上的列fiscal_year和列fiscal_period是有索引的。但是,如果對索引列進行運算,就會導致原本可以走索引的走不了索引。于是,動手改寫成如下SQL:

      
        SELECT
      
      
            id_item ,

                    
      
      
        SUM
      
      
        (dec_qty) dec_qty

          
      
      
        FROM
      
      
              dpurreq_03

          
      
      
        GROUP
      
      
        BY
      
      
          id_item

        ) a ,

        ( 
      
      
        SELECT
      
      
            a.id_item ,

                    
      
      
        SUM
      
      
        (a.dec_endqty) dec_endqty

          
      
      
        FROM
      
      
              acinv_07 a ,

                    ( 
      
      
        SELECT
      
      
        DISTINCT
      
      
        

                                ctlm1101.fiscal_year ,

                                ctlm1101.fiscal_period ,

                                id_table

                      
      
      
        FROM
      
      
              ctlm1101

                      
      
      
        WHERE
      
           flag_curr 
      
        =
      
      
        '
      
      
        Y
      
      
        '
      
      
        AND
      
       id_oprcode 
      
        =
      
      
        '
      
      
        acinv
      
      
        '
      
      
        

                    ) b

          
      
      
        WHERE
      
           a.fiscal_year 
      
        =
      
      
         b.fiscal_year

                    
      
      
        AND
      
       a.fiscal_period 
      
        =
      
      
         b.fiscal_period

                    
      
      
        AND
      
       a.id_wh 
      
        =
      
      
         b.id_table

          
      
      
        GROUP
      
      
        BY
      
        a.id_item
    

再執行,4s鐘左右就可以跑出結果了。

對于開發來說,純粹是為了實現把結果數據展示出來,而不會過多考慮SQL的性能問題。

?

總結

寫SQL時,不到萬不得已,不要對索引列進行計算。

?

避免對索引列進行計算


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 天天干天天草天天射 | 国产亚洲精品久久久久91网站 | 成人亚洲网| 日本高清免费毛片久久看 | 高清国产天干天干天干不卡顿 | www.黄黄黄 | 在线观看亚洲精品国产 | 中中文字幕亚州无线码 | 亚洲一区二区三区四区五区 | 天天操夜夜操 | 国产一级持黄大片99久久 | 色老头老太做爰视频在线观看 | 国产精品久久久久一区二区 | 四虎精品成人免费永久 | 久久精品国产精品亚洲人人 | 最近中文字幕无免费视频 | 欧美毛片一级 | 桃子在线观看 | 中文字幕在线不卡精品视频99 | 欧美线人一区二区三区 | 欧美日韩精品一区二区在线线 | 成人亚洲欧美综合 | 夜色精品国产一区二区 | 一级aaa级毛片午夜在线播放 | 国产一在线精品一区在线观看 | 手机看片精品高清国产日韩 | 九九热最新 | 亚洲精品视频一区 | 国产剧情一区二区 | 亚洲天堂国产精品 | 欧美操片 | 欧美成人精品高清在线播放 | 亚洲区一二三四区2021 | 久久欧美精品欧美久久欧美 | 久久99热精品免费观看k影院 | 久久久综合中文字幕久久 | 久久青草精品一区二区三区 | 91手机看片国产福利精品 | 久热re这里只有精品视频 | 天天色综网 | 青青青免费手机版视频在线观看 |