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

用DEPHLI及SYSBASE

答題得分者是:timhuang
vivi666666
初階會員


發表:83
回覆:94
積分:35
註冊:2003-03-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-14 10:00:49 IP:203.69.xxx.xxx 未訂閱
用DEPHLI及SYSBASE (select count(*) from   CUST  WHERE CUST.CODE=SALE.CODE) <0 跟sale.code NOT IN (select CODE FROM CUST) 那個比較快
timhuang
尊榮會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-14 12:39:01 IP:203.95.xxx.xxx 未訂閱
假設你的 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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-14 15:25:04 IP:203.69.xxx.xxx 未訂閱
引言: 假設你的 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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-14 16:53:08 IP:203.95.xxx.xxx 未訂閱
發生的原因有兩個可能: 1. 資料筆數及資料的問題. 2. 測試的基準點問題. 1. 可能筆數過少, 或是重覆資料過多, 如 1,2,2,2,2,2,3,4,4,4,4,4 這種狀況 2. 可能你先測試過第一種後, 再測試第二種, 我前面說過這兩種查詢方式都會轉為類似前者的方式來進行查詢, 然而你是先做完第一種的測試後, 再做第二種的測試, 這樣資料庫會對已查過的同類型查詢進行快取及記憶的行為, 使得第二種的查詢速度大幅增快, 或許也有可能.
系統時間:2024-06-14 13:32:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!