VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

請問在已經很慢的 NOVELL IPX網路上使用甚麼 VFP TABLE SCAN指令而令執行速度更慢 ?

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
hokwoktat



註冊時間: 2005-09-01
文章: 8


第 1 樓

發表發表於: 星期五 九月 08, 2006 11:01 pm    文章主題: 請問在已經很慢的 NOVELL IPX網路上使用甚麼 VFP TABLE SCAN指令而令執行速度更慢 ? 引言回覆

請問在已經很慢的 NOVELL IPX網路上使用甚麼 VFP TABLE SCAN指令而令執行速度更慢 ?
回頂端
檢視會員個人資料 發送私人訊息
liangszpt



註冊時間: 2004-11-18
文章: 263
來自: な东省深圳市

第 2 樓

發表發表於: 星期六 九月 09, 2006 3:20 am    文章主題: 引言回覆

SCAN、SET FILTER TO 指令,都是会一条一条地扫描,每一次都从客户端到服务器来回地进行条件比较的,这样的确会很慢。
建议改成SQL 批令,待服务端得出结果才回传回来。
或善用TABLE 的INDEX,多年前我做过的案例(很旧的),使用的方法是这样:例如:
LOCAL lcSearchString

lcSearchString = ?????

SELECT MYTABLE
SET ORDER TO KEY1 &&之前已经建立的
LOCATE FOR FIELD_NAME = lcSearchString
DO WHILE !EOF() AND FIELD_NAME = lcSearchString
.......
SELECT MYTABLE
SKIP
ENDDO
这样相对的好处是你只处理了符合条件的记录,而不用对整个TABLE都扫描一次,适合记录数多的情况。

FIELD_NAME 是你要使用到的FIELD。
lcSearchString是一个变数,是你要搜索的值。
KEY1是你之前已经建立的INDEX
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
bin1x



註冊時間: 2004-08-27
文章: 462


第 3 樓

發表發表於: 星期一 九月 11, 2006 8:39 pm    文章主題: 引言回覆

可是我之前有看過一本書
它說了很多條讓foxpro 加速的規則
其中一條
就是用scan for ......取代 do while 迴圈
至於set filter ,資料庫大時是一定會感受到的
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站 MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作