全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1052
推到 Plurk!
推到 Facebook!

SQL 語法執行速度很慢,如何改善??

尚未結案
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-02-14 17:31:49 IP:61.218.xxx.xxx 未訂閱
請教各位前輩     以下SQL 語法執行速度很慢 不知如何修改才可加快速度 MS SQL 2000
     Update  EC母倉加權單價  SET
         EC母倉加權單價.加權單價=
Isnull(
        (
        Select Top 1
           CASE  WHEN ( isnull(期末數量,0)<>0 ) THEN  Round(期末金額/期末數量,8)  ELSE 0  END        
                   AS 期末單價
        From   (AC歷史庫存 INNER JOIN  AA倉庫
        on  AC歷史庫存.倉庫=AA倉庫.倉庫)            Where   年月<@CountYM
               And  AA倉庫.母倉代號=EC母倉加權單價. 母倉代號
               And   AC歷史庫存.產品編號=EC母倉加權單價.產品編號
               And   AC歷史庫存.批號=EC母倉加權單價. 批號
               And        isnull(期末金額,0)<>0 And isnull(期末數量,0)<>0 
         Order By 年月 DESC
        )
        ,0)    From  EC母倉加權單價    Where  EC母倉加權單價.年月=@CountYM And 加權單價=0    謝謝各位前輩 
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-02-15 00:56:43 IP:220.132.xxx.xxx 未訂閱
Hi, 試試,    
Update  EC母倉加權單價  SET
         EC母倉加權單價.加權單價=
Isnull(
        (
        Select Top 1
           Round(期末金額/期末數量,8) AS 期末單價
        From   (AC歷史庫存 INNER JOIN  AA倉庫
        on  AC歷史庫存.倉庫=AA倉庫.倉庫)            Where   年月<@CountYM
               And  AA倉庫.母倉代號=EC母倉加權單價. 母倉代號
               And   AC歷史庫存.產品編號=EC母倉加權單價.產品編號
               And   AC歷史庫存.批號=EC母倉加權單價. 批號
               And   isnull(期末金額,0)<>0 And isnull(期末數量,0)<>0 
         Order By 年月 DESC
        )
        ,0)    From  EC母倉加權單價    Where  EC母倉加權單價.年月=@CountYM And 加權單價=0    
因為 where condition 己有 isnull(期末數量,0)<>0 , 所以前面的 case .. end 可以不用再算一次, 一定都是符合的啦, 另外請問你的 期末金額, 期末數量 會有 0 的值嗎? 若不會有 0 的值, 就還有更快的寫法.
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-02-15 16:26:20 IP:210.69.xxx.xxx 未訂閱
使用 view, stored procedure , trigger ...
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
系統時間:2024-05-03 21:39:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!