| 上一篇主題 :: 下一篇主題   | 
	
	
	
		| 發表人 | 
		內容 | 
	
	
		amd
 
 
  註冊時間: 2003-07-20 文章: 54
 
  第 1 樓
  | 
		
			
				 發表於: 星期日 七月 13, 2014 11:59 pm    文章主題: 有沒有 像 vs 一樣的 dataset 模式的虛擬 資料表 | 
				     | 
			 
			
				
  | 
			 
			
				因平常都用在 真實 資料 庫,但要 select 配 的條件很多,所以想說在記憶体 建立
 
 
一個 虛擬 資料表,查詢的速度應該會加快不少∼
 
 
這個 表 在 要的時候需要 可以 讀寫 的,之後可以不用存資料 ∼ 
 
 
謝 謝 各位大大∼ | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		foxy
 
  
  註冊時間: 2007-08-16 文章: 265 來自: 泰國
  第 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 網站 + Flutter 手機 App, 都共享 MS SQL Server的資料.  www.foxacc.com  LINE: mike-lm | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 3 樓
  | 
		
			
				 發表於: 星期一 七月 14, 2014 9:02 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				如果用 dbf 的話, 在區域網路內
 
再如何虛擬, 也快不起來
 
 
不如加大記憶體, 建立 Ramdisk , 
 
把一些運算丢到 Ramdisk 去,還比較實益 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 4 樓
  | 
		
			
				 發表於: 星期一 七月 14, 2014 9:06 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				不就是 CREATE CURSOR .......  或是 SELECRT ....  INTO CURSOR _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 5 樓
  | 
		
			
				 發表於: 星期一 七月 14, 2014 9:24 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				CREATE CURSOR ....... 或 SELECRT .... INTO CURSOR
 
只是方便操作而已, 實際上並沒有減低網路傳輸流量
 
快也快不了多少
 
 
設若在主機上的 dbf 有一百萬筆 record
 
SELECRT ....  where ....   INTO CURSOR 後僅有一千筆
 
但,vfp仍然是把一百萬筆傳到前端再過濾成一千筆
 
整個網路傳輸並沒有減量 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 6 樓
  | 
		
			
				 發表於: 星期一 七月 14, 2014 9:25 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				CREATE CURSOR ....... 或 SELECRT .... INTO CURSOR
 
只是方便操作而已, 實際上並沒有減低網路傳輸流量
 
快也快不了多少
 
 
設若在主機上的 dbf 有一百萬筆 record
 
SELECRT ....  where ....   INTO CURSOR 後僅有一千筆
 
但,vfp仍然是把一百萬筆傳到前端再過濾成一千筆
 
整個網路傳輸並沒有減量 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 7 樓
  | 
		
			
				 發表於: 星期一 七月 14, 2014 10:16 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				只看網路傳輸確實是這樣.
 
 
但如果還有後續多次處理的情況,
 
那做成cursor 就是如樓主一開始所問. _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		marvin
 
 
  註冊時間: 2004-06-01 文章: 321
 
  第 8 樓
  | 
		
			
				 發表於: 星期一 七月 14, 2014 11:16 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				cursor 不是會寄存在自已PC上嗎?
 
如果不是, 加上 readwrite 應該一定可以 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 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 文章: 4252 來自: 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. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		violetlkk
 
 
  註冊時間: 2003-06-21 文章: 84 來自: kaohsiung
  第 12 樓
  | 
		
			
				 發表於: 星期一 七月 14, 2014 12:05 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 我想 ,買貴一點的電腦+固態硬碟 ,可能會縮成1秒 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 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 文章: 1645
 
  第 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 次修改 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		 |