資料庫讀取的速度很慢很慢. |
答題得分者是:GrandRURU
|
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
1.我用的資料庫是DbMaker3.7,資料庫放在另一部主機,應該不是DbMaker的問題,因為別人的程式只要一秒,而我的程式卻要一分鐘.
2.資料筆數約6000筆,應該不是太大. 3.程式很簡單,TDatabase,TQuery,TDataSource,TDBGrid各拉一個,再加上兩個TButton. 4.TButton裡的內容也很簡單,如下:(幼稚園程度而己) void __fastcall TForm1::Button1Click(TObject *Sender) { Query1->Close(); Query1->SQL->Clear(); Query1->SQL->Add("SELECT * FROM Orders"); Query1->Open(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Query1->Last(); } 5.我的問題是:按Button1只要5秒就搞定,但再按Button2卻要1分多鐘?要客戶等15秒就沒耐心了,何況一分鐘. (執行一次後就快了,可能是第一次會把資料全部複製過來吧.) 6.是有什麼屬性沒設好?還是用索引檔能解決?還是換成VB算了? |
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
|
tobylin
一般會員 發表:1 回覆:15 積分:18 註冊:2009-12-25 發送簡訊給我 |
如果Orders 的 Primary Key 是 ord_id,
Query1->SQL->Add("SELECT * FROM Orders WHERE ord_id IS NULL"); // ORACLE資料庫 ===================引 用 brook 文 章=================== 1.我用的資料庫是DbMaker3.7,資料庫放在另一部主機,應該不是DbMaker的問題,因為別人的程式只要一秒,而我的程式卻要一分鐘. 2.資料筆數約6000筆,應該不是太大. 3.程式很簡單,TDatabase,TQuery,TDataSource,TDBGrid各拉一個,再加上兩個TButton. 4.TButton裡的內容也很簡單,如下:(幼稚園程度而己) void __fastcall TForm1::Button1Click(TObject *Sender) { Query1->Close(); Query1->SQL->Clear(); Query1->SQL->Add("SELECT * FROM Orders"); Query1->Open(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Query1->Last(); } 5.我的問題是:按Button1只要5秒就搞定,但再按Button2卻要1分多鐘?要客戶等15秒就沒耐心了,何況一分鐘. (執行一次後就快了,可能是第一次會把資料全部複製過來吧.) 6.是有什麼屬性沒設好?還是用索引檔能解決?還是換成VB算了? |
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
|
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
感謝GrandRURU大大回答.
用Select 欄位1,欄位2會快很多,約2秒,但這些欄位幾乎都會用到. 我用TADOQuery開就要花一分多鐘,用TQuery,TTable開都約2秒,但Table1->Last();花不到1秒,用Query1->Last();卻要1分鐘. ===================引 用 GrandRURU 文 章=================== 試試看不要用Select *,改用Select 欄位1,欄位2試試看 不過,你所謂別人的程式,它是用什麼方式來連接dbmarker? 如果是原生的連接法(像是ado搭配ms sql),bde是一定不會比它快的。 如果是用ODBC,我相信速度不會差這麼多才是。 |
小蟲蟲
一般會員 發表:38 回覆:55 積分:23 註冊:2002-03-13 發送簡訊給我 |
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |