用DEPHLI及SYSBASE |
答題得分者是:timhuang
|
vivi666666
初階會員 發表:83 回覆:94 積分:35 註冊:2003-03-05 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
假設你的 sql query 為: select * from sale where (select count(*) from CUST WHERE CUST.CODE=SALE.CODE) <0 與 select * from sale where sale.code NOT IN (select CODE FROM CUST) 來比較的話, 前者應該會快一點, 但應該不會有太大的差異, 因為根據指令最佳化後的結果, 會將後者轉為類似前者查詢方式進入資料庫. 但你要改一下, 你的查詢條件有一點問題, 應該是: (select count(*) from CUST WHERE CUST.CODE=SALE.CODE) <=0 才對哦!! 另外使用這樣的方法, 結果也是相同的:
select * from tbl_user where not exists (select * from classuser where uid=tbl_user.id) 但速度應該差不多, 若要再加速的話, 僅能針對 index 及查詢條件縮小範圍方面下手.
|
vivi666666
初階會員 發表:83 回覆:94 積分:35 註冊:2003-03-05 發送簡訊給我 |
引言: 假設你的 sql query 為: select * from sale where (select count(*) from CUST WHERE CUST.CODE=SALE.CODE) <0 與 select * from sale where sale.code NOT IN (select CODE FROM CUST) 來比較的話, 前者應該會快一點, 但應該不會有太大的差異, 因為根據指令最佳化後的結果, 會將後者轉為類似前者查詢方式進入資料庫. 但你要改一下, 你的查詢條件有一點問題, 應該是: (select count(*) from CUST WHERE CUST.CODE=SALE.CODE) <=0 才對哦!! 另外使用這樣的方法, 結果也是相同的: select * from tbl_user where not exists (select * from classuser where uid=tbl_user.id) 但速度應該差不多, 若要再加速的話, 僅能針對 index 及查詢條件縮小範圍方面下手.但我測試時是後者比較快,不曉為什麼,count動作不是要從頭read到尾,不是會比較慢嗎 |
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |