 |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
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 |
|
回頂端 |
|
 |
bin1x
註冊時間: 2004-08-27 文章: 462
第 3 樓
|
發表於: 星期一 九月 11, 2006 8:39 pm 文章主題: |
|
|
可是我之前有看過一本書
它說了很多條讓foxpro 加速的規則
其中一條
就是用scan for ......取代 do while 迴圈
至於set filter ,資料庫大時是一定會感受到的 |
|
回頂端 |
|
 |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|