線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1609
推到 Plurk!
推到 Facebook!

執行時,CPU使用率100%,且程式執行速度很慢??

尚未結案
bitylove
一般會員


發表:2
回覆:9
積分:2
註冊:2004-02-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-02 17:18:27 IP:61.64.xxx.xxx 未訂閱
請問各位高手, 我利用ADO物件連結資料庫, 在SQL裡,連結到許多的資料表, 結果執行時,不僅執行速度慢,CPU的使用率也高達100%。 以下是我的SQL語法。 select * from 送貨單,送貨單明細,訂單,訂購明細 where 請款單號 like :請款單號 and 送貨單.送貨單號 like 送貨單明細.送貨單號 and 送貨單.訂貨單號 like 訂單.訂貨單號 and 送貨單.訂貨單號 like 訂購明細.訂貨單號 and 送貨單明細.產品編號 like 訂購明細.產品編號 order by 送貨單明細.送貨單號 請各位高手幫我看看問題出在哪?? 或是否能將以上的SQL語法再簡潔一點?? 麻煩各位高手了,謝謝。
Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-02 17:33:11 IP:203.75.xxx.xxx 未訂閱
1.不要用 LIKE 2.不要用 * 3.如果下載的資料過多就請在 SQL 中再加條件 -- 聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心 傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-03 01:14:37 IP:203.204.xxx.xxx 未訂閱
bitylove 你好    我不知你的結構及關聯關係,依常理判斷,並如Jasonwong兄所述,試試改成如下指令
select * from 送貨單,送貨單明細,訂單,訂購明細
where 送貨單.請款單號 = :請款單號  // ??? 請款單號在那個表格呢?不會是送貨單號吧!
    and 送貨單.送貨單號 = 送貨單明細.送貨單號
    and 送貨單.訂貨單號 = 訂單.訂貨單號
    and (送貨單明細.訂貨單號 = 訂購明細.訂貨單號
        and 送貨單明細.產品編號 = 訂購明細.產品編號 )
order by 送貨單.送貨單號
bestlong
站務副站長


發表:126
回覆:734
積分:512
註冊:2002-10-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-03 23:14:00 IP:218.162.xxx.xxx 未訂閱
引言: 請問各位高手, 我利用ADO物件連結資料庫, 在SQL裡,連結到許多的資料表, 結果執行時,不僅執行速度慢,CPU的使用率也高達100%。 以下是我的SQL語法。 select * from 送貨單,送貨單明細,訂單,訂購明細 where 請款單號 like :請款單號 and 送貨單.送貨單號 like 送貨單明細.送貨單號 and 送貨單.訂貨單號 like 訂單.訂貨單號 and 送貨單.訂貨單號 like 訂購明細.訂貨單號 and 送貨單明細.產品編號 like 訂購明細.產品編號 order by 送貨單明細.送貨單號
SQL 的處理原則就如 Jasonwong 與 Chance36 所述, 不過 CPU 用到 100% 就要請教一下你的電腦的等級與資料庫是哪一種(Access, MS-SQL or Other?)以及是否也與AP在同一台執行. 建議將資料庫移到一台專屬的 PC 上執行. 我是雪龍
------
http://blog.bestlong.idv.tw/
http://www.bestlong.idv.tw/
http://delphi-ktop.bestlong.idv.tw/
bestlong
站務副站長


發表:126
回覆:734
積分:512
註冊:2002-10-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-03 23:17:35 IP:218.162.xxx.xxx 未訂閱
另外, 資料庫的索引設計也會影響效率, 特別是 where 的條件欄位沒有設定索引的話, 資料庫還要做整個 Table 的掃描或是建立臨時排序索引的動作, 可是會增加許多負擔的. 我是雪龍 發表人 - bestlong 於 2004/04/03 23:18:52
------
http://blog.bestlong.idv.tw/
http://www.bestlong.idv.tw/
http://delphi-ktop.bestlong.idv.tw/
bitylove
一般會員


發表:2
回覆:9
積分:2
註冊:2004-02-20

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-05 19:05:02 IP:61.64.xxx.xxx 未訂閱
嗯…謝謝各位大大的解答, 我的問題解決了。 原來使用like,會使整個程式效能降低。 我還只是個新手,因此有許多要點沒有注意到… 以後,我會多多注意的。 謝謝大家!!^___^
系統時間:2024-09-09 18:02:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!