為何IBdataset之locate與Adodataset或BDE之Ttable之locate效率差很多? |
答題得分者是:kadee
|
ry_lee
高階會員 發表:368 回覆:251 積分:123 註冊:2002-03-19 發送簡訊給我 |
為何IBdataset之locate與Adodataset或BDE之Ttable之locate效率差很多?IBdataset在primary key欄位locate與Adodataset或BDE之Ttable之locate效率差很多,後來我在IBdataset與Adodataset與BDE之Ttable之afterscroll事件加一行程式碼memo1.lines.add('afterscroll'),執行程式後我發現僅IBdataset之afterscroll事件程序一直被呼叫,而Adodataset或BDE之Ttable之locate完全無呼叫afterscroll事件程序,如果IBdataset資料表有10000筆,而要找之記錄資料是在很後面,那被呼叫之afterscroll事件程序就接近10000次,這是否表示IBdataset之locate其實是逐筆比對而不能像Adodataset或BDE之Ttable之locate(它們會以最佳效率之方式來搜尋)?有沒有什麼辦法能讓IBdataset之locate也能像Adodataset或BDE之Ttable之locate那麼快速有效率?
ps:IBdataset在open之後,有去呼叫fetchall方法後才去執行locate |
kadee
高階會員 發表:11 回覆:141 積分:165 註冊:2002-03-20 發送簡訊給我 |
一般來講,在client端,除非確定 目前的 dataset 筆數不多,才適合使用 locate 或 filter的方式
找出需要的紀錄,如果 dataset 的筆數已經高達 10000筆,實在不適合用 locate的方式,建議利用db中適當的index找出需要的紀錄值,才是比較合適的設計方式。 Kadee Aon /www.bigredinf.net ===================引 用 ry_lee 文 章=================== 為何IBdataset之locate與Adodataset或BDE之Ttable之locate效率差很多?IBdataset在primary key欄位locate與Adodataset或BDE之Ttable之locate效率差很多,後來我在IBdataset與Adodataset與BDE之Ttable之afterscroll事件加一行程式碼memo1.lines.add('afterscroll'),執行程式後我發現僅IBdataset之afterscroll事件程序一直被呼叫,而Adodataset或BDE之Ttable之locate完全無呼叫afterscroll事件程序,如果IBdataset資料表有10000筆,而要找之記錄資料是在很後面,那被呼叫之afterscroll事件程序就接近10000次,這是否表示IBdataset之locate其實是逐筆比對而不能像Adodataset或BDE之Ttable之locate(它們會以最佳效率之方式來搜尋)?有沒有什麼辦法能讓IBdataset之locate也能像Adodataset或BDE之Ttable之locate那麼快速有效率? ps:IBdataset在open之後,有去呼叫fetchall方法後才去執行locate
------
Kadee/BigRed Ent. www.tw165.com |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |