全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1468
推到 Plurk!
推到 Facebook!

兩個以上的程式同時連結資料庫的問題

答題得分者是:pcboy
kenliu14
一般會員


發表:1
回覆:1
積分:0
註冊:2007-07-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-07-10 17:23:09 IP:61.66.xxx.xxx 訂閱
小弟使用 INTERBASE 資料庫引擎時遇到一個問題 當我執行一支程式將資料寫入資料庫時,同時又開啟另一支程式讀取這個資料庫,發現會導致這個資料庫檔案大小成長的速度變快 ; 雖然將資料庫重新維護後可以將資料庫縮小,但是小弟希望能有別的解決方法,謝謝!!
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-07-11 11:51:13 IP:61.220.xxx.xxx 訂閱
當這兩個程式關閉後, 資料庫大小變得如何呢 ?
將資料庫重新維護後, 資料庫大小變得如何呢 ?

資料庫大小成長速度變快很重要嗎 ?
某些DB會愈佔用比實際DB多10%空間, 在新增資料時候, 省去向HD要空間給DB使用的工作
當這10%用盡時候, 會一次再讓DB增加10%未用空間
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
kenliu14
一般會員


發表:1
回覆:1
積分:0
註冊:2007-07-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-07-17 16:27:16 IP:61.66.xxx.xxx 訂閱
小弟一支程式負責寫資料,若同時開啟另一支程式來讀取資料會造成資料庫成長的速度是原來的兩倍 , 例如原本我寫10000筆資料進去資料庫的大小為 4M  但若我在寫資料的同時開啟另一支程式去讀取資料庫則會造成同樣寫 10000 筆資料但是資料庫的大小卻變成 8 M ; 如此下去會造成資料庫太大影響存取資料的速度 .   
如果資料庫維護過則資料庫會恢復成較小的檔案, 但是小弟又不想常常去維護資料庫 , 所以請各位大大能提供小弟解決的方法 , 例如是否在寫程式的語法上略做修改就可以解決此問題
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-07-18 01:44:43 IP:61.64.xxx.xxx 訂閱
這很正常,不然你以會會發生甚麼 ?

同時存取資料庫,當然會需要兩份資料(以你的cases而言),各用去4M
連線結束,資料庫會依據其規則將資料正式寫入或變更,當然會變回正確的大小
再加上pcboy說的觀念,會用去多少空間,你又何必去干預 ?

如果你覺得讀寫的資料太多,你為何不重新檢討一下,是否有必要同時讀取這麼多資料,分段處理不可行嗎?再來看是否要這麼在乎資料庫的大小

嫌太慢,換顆好點的硬碟吧(RAID、SCSI、上萬轉硬碟,應該不只是發明好看的)

或是你自己對資料庫做最佳化(這點只有你能做到,因為相關環境只有你清楚)

所以請不要騎腳踏車,然後說:挖,道路不平,飆不到 90 km/s


===================引 用 kenliu14 文 章===================
小弟一支程式負責寫資料,若同時開啟另一支程式來讀取資料會造成資料庫成長的速度是原來的兩倍 , 例如原本我寫10000筆資料進去資料庫的大小為 4M 但若我在寫資料的同時開啟另一支程式去讀取資料庫則會造成同樣寫 10000 筆資料但是資料庫的大小卻變成 8 M ; 如此下去會造成資料庫太大影響存取資料的速度 .
如果資料庫維護過則資料庫會恢復成較小的檔案, 但是小弟又不想常常去維護資料庫 , 所以請各位大大能提供小弟解決的方法 , 例如是否在寫程式的語法上略做修改就可以解決此問題
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-07-18 07:33:13 IP:203.204.xxx.xxx 訂閱
1. 資料庫運作, 一般重視在效能運算, 犧牲 HD 空間換取運算速度; 如果要斤斤計較 HD 空間, 那就是犧牲效能換取空間
2. 資料庫維護雖然可以讓資料庫放出浪費的硬碟空間怕影響, 但是因為這個 HD I/O 很重, 一般是每天半夜做一次或每週做一次(如果下班後or半夜跑不完)
3. 資料庫維護一般是在資料庫系統中設定做哪些事情, 排程去執行, 不是在程式中, 也不保證程式可以做
4. 4M很小, 評估說佔兩倍的說法不是很準確, 個人覺得至少要 100 MB 以上去評估; 因為從 4M -> 8M 可能是資料庫系統拿 4M 來做某些事情
5. 寫程式的語法考量, 如果只是 "讀" 資料, 不要以 "可讀寫" 模式去連線存取資料庫 (小弟不知道 Delphi 連 InterBase 是否有這種分別)
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
renard
一般會員


發表:3
回覆:43
積分:24
註冊:2007-06-29

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-07-23 10:20:03 IP:220.133.xxx.xxx 訂閱
好熟悉的題目喔,請問您是流X科技的員工嗎?
系統時間:2024-05-19 1:52:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!