有關SQL 及程式之效率 |
尚未結案
|
hkguy80
一般會員 發表:20 回覆:21 積分:8 註冊:2004-09-06 發送簡訊給我 |
我已寫了一個 程式作計糧之用.
問題是程式會以loop 的形式查詢database.
想請問轉作一句Query 再用 while not adoqry.eof do
會否有顯著的速度改善? 如是者,徜若我要 10 個員工 資料,
其staffId 並不順序. 是否要用 loop 行 10 次select statement 呢?
可否只行一次select statement 呢?
e.g select * from Staff where staffId ='a' or staffid ='e' ..... 那種方法效率更佳?
謝謝!
|
supman
尊榮會員 發表:29 回覆:770 積分:924 註冊:2002-04-22 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 我已寫了一個 程式作計糧之用. 問題是程式會以loop 的形式查詢database. 想請問轉作一句Query 再用 while not adoqry.eof do 會否有顯著的速度改善? 如是者,徜若我要 10 個員工 資料, 其staffId 並不順序. 是否要用 loop 行 10 次select statement 呢? 可否只行一次select statement 呢? e.g select * from Staff where staffId ='a' or staffid ='e' ..... 那種方法效率更佳? 謝謝!由於使用sql語法, 系統是把sql語法送到server端(不管是單機或server)後 再去解譯sql語法->執行->送回執行結果到原來發送指令的電腦 所以你用10次loop去做, 我們把server要做的事分解至少要4段 (傳送->解譯->執行->送回), 也就是10*4=40次, 因此如果你要查詢的員工 能夠找一個可以具有同一條件如部門來設定條件 select * from xxxxx where deptno='人事' or deptno='品管' 這樣就可以 讓server找到符合條件然後一次送回到grid中來查詢 |
hkguy80
一般會員 發表:20 回覆:21 積分:8 註冊:2004-09-06 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |