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

有沒有 像 vs 一樣的 dataset 模式的虛擬 資料表
前往頁面 1, 2, 3  下一頁
 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
amd



註冊時間: 2003-07-20
文章: 54


第 1 樓

發表發表於: 星期日 七月 13, 2014 11:59 pm    文章主題: 有沒有 像 vs 一樣的 dataset 模式的虛擬 資料表 引言回覆

因平常都用在 真實 資料 庫,但要 select 配 的條件很多,所以想說在記憶体 建立

一個 虛擬 資料表,查詢的速度應該會加快不少∼

這個 表 在 要的時候需要 可以 讀寫 的,之後可以不用存資料 ∼

謝 謝 各位大大∼
回頂端
檢視會員個人資料 發送私人訊息
foxy



註冊時間: 2007-08-16
文章: 229
來自: 泰國

第 2 樓

發表發表於: 星期一 七月 14, 2014 12:07 am    文章主題: 引言回覆

在系統開始可以先做出這個 Table:
m.lcTableName='TMP'+SYS(2015)
SELECT * INTO TABLE (m.lcTableName)
INDEX ON *
_SCREEN.ADDPROPERTY('TMP_NAME1', m.lcTableName)

使用的時候:
USE (_SCREEN.TMP_NAME1)
SEEK

系統退出要刪除:
DELETE FILE (_SCREEN.TMP_NAME1+'.DBF')
DELETE FILE (_SCREEN.TMP_NAME1+'.CDX')

_________________
進銷存+生產製造+會計+員工薪資+CRM+POS零售+餐廳手機app+電商手機app+電商網站,物流系統. 正/簡體中文,英,日,泰,緬甸文. MS SQL Server + 前台 VFP + PHP 網站 + 手機 App, 都共享 MS SQL Server的資料. www.foxacc.com LINE: mike-lm
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 參觀發表人的個人網站 MSN Messenger
ckp6250



註冊時間: 2004-07-30
文章: 1642


第 3 樓

發表發表於: 星期一 七月 14, 2014 9:02 am    文章主題: 引言回覆

如果用 dbf 的話, 在區域網路內
再如何虛擬, 也快不起來

不如加大記憶體, 建立 Ramdisk ,
把一些運算丢到 Ramdisk 去,還比較實益
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
syntech



註冊時間: 2003-05-16
文章: 4211
來自: Taipei,Taiwan

第 4 樓

發表發表於: 星期一 七月 14, 2014 9:06 am    文章主題: 引言回覆

不就是 CREATE CURSOR ....... 或是 SELECRT .... INTO CURSOR
_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
ckp6250



註冊時間: 2004-07-30
文章: 1642


第 5 樓

發表發表於: 星期一 七月 14, 2014 9:24 am    文章主題: 引言回覆

CREATE CURSOR ....... 或 SELECRT .... INTO CURSOR
只是方便操作而已, 實際上並沒有減低網路傳輸流量
快也快不了多少

設若在主機上的 dbf 有一百萬筆 record
SELECRT .... where .... INTO CURSOR 後僅有一千筆
但,vfp仍然是把一百萬筆傳到前端再過濾成一千筆
整個網路傳輸並沒有減量
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
ckp6250



註冊時間: 2004-07-30
文章: 1642


第 6 樓

發表發表於: 星期一 七月 14, 2014 9:25 am    文章主題: 引言回覆

CREATE CURSOR ....... 或 SELECRT .... INTO CURSOR
只是方便操作而已, 實際上並沒有減低網路傳輸流量
快也快不了多少

設若在主機上的 dbf 有一百萬筆 record
SELECRT .... where .... INTO CURSOR 後僅有一千筆
但,vfp仍然是把一百萬筆傳到前端再過濾成一千筆
整個網路傳輸並沒有減量
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
syntech



註冊時間: 2003-05-16
文章: 4211
來自: Taipei,Taiwan

第 7 樓

發表發表於: 星期一 七月 14, 2014 10:16 am    文章主題: 引言回覆

只看網路傳輸確實是這樣.

但如果還有後續多次處理的情況,
那做成cursor 就是如樓主一開始所問.

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
marvin



註冊時間: 2004-06-01
文章: 321


第 8 樓

發表發表於: 星期一 七月 14, 2014 11:16 am    文章主題: 引言回覆

cursor 不是會寄存在自已PC上嗎?
如果不是, 加上 readwrite 應該一定可以
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1642


第 9 樓

發表發表於: 星期一 七月 14, 2014 11:30 am    文章主題: 引言回覆

以目前的電腦速度及硬碟速度來說
into cursor 和 into table 其實差異已經不大
最大的瓶頸還是在網路傳輸

而這一點, dbf 實在無解
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
amd



註冊時間: 2003-07-20
文章: 54


第 10 樓

發表發表於: 星期一 七月 14, 2014 11:48 am    文章主題: 引言回覆

各位大大,可能小弟沒講得很清楚∼
我在本機上作業∼
我的 資料 結構是 共 3 個表
A 2000 筆 共 10 個欄位,最後不用真的存資料
B 目前有 20 萬筆(每天會 2000 筆增加
C 目前有 20 萬筆(每天會 2000 筆增加

再來就是 3個表交叉 select 要的結果,比對的條件很多,
我目前在真的 dbf 上大概要 3秒查出吧,想說要快一點!

因為 A 表要一直重覆寫 8 小時,如果在一個 ram 上的 假資料表(沒有實体),但可以寫 讀,這樣速度都會增加很多∼

----------------
TO ckp6250 大大
Ramdisk 這個我有用過,沒什麼效果

syntech 大大
CREATE CURSOR ....... 這個是沒有實体的 dbf 嗎?
或是 SELECRT .... INTO CURSOR 這個不是不可 寫 嗎?

-------------
謝謝各位∼
麻煩各位大大 再 教授一下 ∼
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 4211
來自: Taipei,Taiwan

第 11 樓

發表發表於: 星期一 七月 14, 2014 11:54 am    文章主題: 引言回覆

1.CREATE CURSOR ....... 這個是沒有實体的 dbf 嗎?

記憶體夠的情況下,無實體,不太夠的話,由vfp自動管理,並產生臨時檔,使用完自動刪除




2.或是 SELECRT .... INTO CURSOR 這個不是不可 寫 嗎?

vfp 7 以上 加入 readwrite,
vfp 6 以下 要動點手腳.版上有.


3. ramdisk 沒效果的話,通常其他方式也不會有效果.
只能靠把這個工作轉成讓DB Server (例如 oracle sql server,m$ sql server, mysql server) 去處理.
運氣好,可以改善.

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
violetlkk



註冊時間: 2003-06-21
文章: 82
來自: kaohsiung

第 12 樓

發表發表於: 星期一 七月 14, 2014 12:05 pm    文章主題: 引言回覆

我想 ,買貴一點的電腦+固態硬碟 ,可能會縮成1秒
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
ckp6250



註冊時間: 2004-07-30
文章: 1642


第 13 樓

發表發表於: 星期一 七月 14, 2014 3:33 pm    文章主題: 引言回覆

amd 寫到:

我目前在真的 dbf 上大概要 3秒查出吧,想說要快一點!


若是我的話,就不會費心在這兒啦
就算3秒縮成一秒,客戶也不會有感覺!

等那一天到了要跑30秒時,再來操心這個主題吧

amd 寫到:

再來就是 3個表交叉 select 要的結果,比對的條件很多,


又,一道複雜的 Select 語句,有時,把它拆成二三段簡單的語句,
可能整體時間會更節省
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
amd



註冊時間: 2003-07-20
文章: 54


第 14 樓

發表發表於: 星期一 七月 14, 2014 5:54 pm    文章主題: 引言回覆

首先 先 謝謝 各位大大 分享自己 的技巧∼

syntech 大大提供的 2個 技巧,記起來,應該有用∼

TO ckp6250 大大,小弟是在找看能不能有更快的技巧∼

-------

程式是自己用的,目的是看金融 方面.....,所以速度要愈快愈好∼

我是寫分2個程式,一個下載我要的資料,所以它要一直重覆做讀寫,一個是在 select 我要的資料‵

本來想用 syntech 大大提供的 CREATE CURSOR 方式,突然想到我是分2個程式,所以此法不行,還是要實体∼

那個 ckp6250 大大 提供的 select 拆成二三段簡單的語句,我是已把 本來要查 3個表,分成2階段了,不然真的會慢到爆∼


可能最後的做法是 先把 a b c 表給先 select 在記憶体,再來 select 要的條件 來試看看 會不會較快∼

本來想學 c# 來寫看看,但想到我寫的程式,是要在3個表 跑來跑去,心就涼了一半,還是用 foxpro 來寫較實在∼

如果都沒效果,可能以後再買一個 ssd 來用∼

--------

話說 foxpro 如果要寫成 sql 資料庫 方式,小弟沒研究過,不會寫,有需要的時候再學看看,不過感覺如要 sql 資料庫 ,用 c# 會不會較簡單 ∼
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1642


第 15 樓

發表發表於: 星期一 七月 14, 2014 8:50 pm    文章主題: 引言回覆

amd 寫到:

我在本機上作業∼
我的 資料 結構是 共 3 個表
A 2000 筆 共 10 個欄位,最後不用真的存資料
B 目前有 20 萬筆(每天會 2000 筆增加
C 目前有 20 萬筆(每天會 2000 筆增加


以這個條件來看,3秒肯定有改進空間,應是程式問題

40萬筆的dbf, 以vfp來講,是小兒科

至於提到資料處理,就不用提 c# 了,
包準被 vfp 巴玩的

又,只要不斷電或當機
CREATE CURSOR 就等於實體了,跟您拆幾支程式無關


ckp6250 在 星期一 七月 14, 2014 9:28 pm 作了第 3 次修改
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
前往頁面 1, 2, 3  下一頁
1頁(共3頁)

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


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