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

如何在短時間下更新server大量資料(有條件限制)

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



註冊時間: 2007-03-07
文章: 3


第 1 樓

發表發表於: 星期三 三月 07, 2007 7:56 pm    文章主題: 如何在短時間下更新server大量資料(有條件限制) 引言回覆

客戶資料庫為oracle server,資料量10萬筆(最大20萬筆),必須在30分鐘內將自server 上下載經處理過後的部分欄位資料回填(update)
但客戶有條件限制:
1.不可在server上建store porcedure(不易維護)及我方要求的table
2.不可使用sql loader(目前為此種作法)
3.要有進度顯示

最先以odbc 或ole object(oo4o),但10~20萬筆的迴圈要耗時數小時以上

我目前採用將dbf轉成txt file,透過sql loader,再觸發server 上的store procedure,由server做比對更新,目前約數分鐘內完成,但客戶未來不同意。

也曾測試過直接透過程式,先產生.sql,再由程式執行dos下的sql plus執行.sql,有比較快(要30分鐘),但進度無法由vfp程式掌控,且.sql內一次只能容納數千行update指令,勢必要拆成數個進行,且同時畫面跳出多個dos視窗也很不協調。

又想過另外寫一個專門update的小程式,先將資料拆成10等分,以主程式去執行10個相同小程式,同步進行上傳,但又怕執行會很奇怪。

懇請大家的協助,謝謝!!
回頂端
檢視會員個人資料 發送私人訊息
syntech



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

第 2 樓

發表發表於: 星期四 三月 08, 2007 1:43 pm    文章主題: 引言回覆

寫專門update的程式就好啦.

為什麼要拆資料?
不懂.
拆開來也是無法統計進度.


但是一定時間內傳入一堆update 命令 可是對sql server是一大挑戰

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

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



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

第 3 樓

發表發表於: 星期四 三月 08, 2007 3:05 pm    文章主題: 引言回覆

"10~20萬筆的迴圈要耗時數小時以上" 真是令人在意的一句話
_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

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



註冊時間: 2007-03-07
文章: 3


第 4 樓

發表發表於: 星期四 三月 08, 2007 6:29 pm    文章主題: 引言回覆

我是以do while =sqlexec("update...") enddo 來處理這10萬筆資料,是否有其他方法,另外『寫專門update的程式』可否提示,謝謝!!
回頂端
檢視會員個人資料 發送私人訊息
syntech



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

第 5 樓

發表發表於: 星期五 三月 09, 2007 8:48 am    文章主題: 引言回覆

看起來似乎是逐筆處理,逐筆更新的情況.

不能直接由SERVER處理,而必須傳回來作嗎?


『寫專門update的程式』? 那不是你說的嗎? Very Happy

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

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



註冊時間: 2007-03-07
文章: 3


第 6 樓

發表發表於: 星期五 三月 09, 2007 7:14 pm    文章主題: 引言回覆

現在的瓶頸在於必須批次一次回傳(local上的資料複製於server,經local處理後,必須將異動的內容全部回傳,因客戶限制不能即時更新)。
但以程式目前逐筆上傳server的速度實在不夠快(odbc處理 平均一秒<20筆),因此想請教是否有效率較好的批次處理方法。
也曾嘗試寫過符合server語法的PL-SQL透過程式傳送過去,但是vfp會當(在sql plus下又不會)??) 或同時開多個上傳介面(本人不會寫多工程式,只想到可否以背景執行n個上傳程式,各子程式再將目前上傳的筆數匯總給主程式?)
期待各位先進的寶貴意見,謝謝!!
回頂端
檢視會員個人資料 發送私人訊息
jennher



註冊時間: 2004-09-16
文章: 5


第 7 樓

發表發表於: 星期六 三月 10, 2007 1:57 am    文章主題: 引言回覆

我也碰過這種麻煩:
我的做法是寫一支spt 的程式 掛到公司網路的 ftp server 上,
上傳/下載資料 先壓縮再解開.
local network 上執行 odbc 的程式很快
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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