請問要如何縮短寫入資料庫的時間呢? |
尚未結案
|
jackwu
一般會員 發表:28 回覆:54 積分:16 註冊:2002-08-18 發送簡訊給我 |
我現在利用Table元件將資料寫入資料庫,當然是使用最基本的方法去將資料寫入到資料庫中
Table1->Open();
Table1->Edit();
Table1->First();
Table1->Insert();
Table1->FieldValues["User Name"] = LoginForm->username;
Table1->FieldValues["Date"] = Now().DateString();
Table1->FieldValues["Time"] = Now().TimeString();
Table1->FieldValues["Event"] = WriteEvent;
Table1->Post();
Table1->Close();
可是當有大量的資料需要寫入時(呼叫此副程式),速度就會變的很慢,請問要如何才能加快寫入的速度呢?謝謝
<<我是猜測要打開資料庫時會需要一段時間,不知道是不是因為這樣才使得速度變慢的>>
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
Hi, 將 open 和 close 作一次就好了, 而且 first 可以不用下, 如下:
Table1->Open(); for(var i=0;i<20;i ) { Table1->Edit(); //Table1->First(); Table1->Insert(); Table1->FieldValues["User Name"] = LoginForm->username; Table1->FieldValues["Date"] = Now().DateString(); Table1->FieldValues["Time"] = Now().TimeString(); Table1->FieldValues["Event"] = WriteEvent; Table1->Post(); } Table1->Close(); |
jackwu
一般會員 發表:28 回覆:54 積分:16 註冊:2002-08-18 發送簡訊給我 |
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
引言: 順便在問一下,如果在同一個時間有2台以上的PC或者是有一台PC已經先開了資料庫並且再寫入資料,請問此時會發生什麼事呢?是否兩台PC的資料都可以寫入資料庫呢?謝謝jackwu, 您好 這就涉及到資料的鎖定問題了 我大略說一下 詳細的部分還是要請您自己看書找資料 資料鎖定分為 1.唯讀:只能做讀取的動作,其他皆不能 2.悲觀鎖定:使用者將資料進入修改狀態時,該筆資料便被鎖定,直到使用者cancel or post 3.樂觀鎖定:只有在使用者作post時,該筆資料才會被鎖定,一旦post的動作ok,資料就被釋放 以上資料皆指record 以上內容若有錯誤請指正 ============ 是非終日有 不聽自然無 |
jackwu
一般會員 發表:28 回覆:54 積分:16 註冊:2002-08-18 發送簡訊給我 |
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
引言: 謝謝站長的回覆 那對於現在資料庫的寫入速度我有一個想法,不知道可不可行,請各位給我一個意見好嗎?謝謝 現在我是希望將所有的資料先寫入到一個文字檔之類的文件,等待資料寫入完成之後,我再利用Thread寫入資料庫,那我得應用程式還能夠執行其他的工作。那這樣寫入資料庫,會有問題嗎?jackwu, 您好 我想這樣可能會有問題喔 在您將資料寫入文字檔後 但尚未寫入資料庫之前 如果有其他使用者讀去該筆資料 這樣會是舊的資料 如果您的系統對即時資料的需求不大的話 您的做法或許可行 但如果即時資料的需求大的話 這個做法就有待商榷囉 還有個問題 我不是站長(請不要害,要是站長以為我要篡位怎麼辦) 只是個小小的能力不足的板主 我還是比較喜歡大家直接叫我 |
jackwu
一般會員 發表:28 回覆:54 積分:16 註冊:2002-08-18 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
|
China Join
中階會員 發表:81 回覆:242 積分:89 註冊:2003-03-12 發送簡訊給我 |
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
|
China Join
中階會員 發表:81 回覆:242 積分:89 註冊:2003-03-12 發送簡訊給我 |
|
jackwu
一般會員 發表:28 回覆:54 積分:16 註冊:2002-08-18 發送簡訊給我 |
|
China Join
中階會員 發表:81 回覆:242 積分:89 註冊:2003-03-12 發送簡訊給我 |
|
jackwu
一般會員 發表:28 回覆:54 積分:16 註冊:2002-08-18 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
jackwu, 您好
請參考下面這篇文章
或許對您有幫助
http://delphi.ktop.com.tw/topic.php?topic_id=228 =======================
是非終日有,不聽自然無
|
jackwu
一般會員 發表:28 回覆:54 積分:16 註冊:2002-08-18 發送簡訊給我 |
引言: jackwu, 您好 請參考下面這篇文章 或許對您有幫助 http://delphi.ktop.com.tw/topic.php?topic_id=228 ======================= 是非終日有,不聽自然無謝謝版主喔!! 依照China Join的建言,給妳加分一下,版主要加油喔!! |
yjpllqwr
一般會員 發表:0 回覆:3 積分:0 註冊:2003-05-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |