M3数据库的压缩程序设计M3 Eob Database Compacted
M3數(shù)據(jù)庫的壓縮程序設(shè)計M3 EobDatabase Compacted
Email: eattonton@qq.com
1.??????前言
M3數(shù)據(jù)庫是記錄信息的載體,在M3系統(tǒng)每一個數(shù)據(jù)文件都有IDX,DAT,EOB,LCK四種文件組成。其中IDX,DAT為索引文件,EOB是真正的數(shù)據(jù)文件。具體的數(shù)據(jù)都存儲在EOB文件中。原本這樣的程序設(shè)計對于設(shè)計員來說數(shù)據(jù)訪問快速,對于系統(tǒng)管理員來說可以很好的維護數(shù)據(jù)庫。但是,在實際使用中系統(tǒng)管理員也發(fā)現(xiàn),EOB數(shù)據(jù)庫大于2G文件大小,再往里面寫數(shù)據(jù)就很困難。這時往往是清空一下數(shù)據(jù)庫,或者干脆新建一個數(shù)據(jù)庫。數(shù)據(jù)庫的這一限制對于大型的,復(fù)雜的船舶,往往需要建很多子工程用于維護整個項目。
隨著對數(shù)據(jù)庫建構(gòu)的深入研究,發(fā)現(xiàn)EOB數(shù)據(jù)庫里面在使用中會產(chǎn)生不少的無用信息。這些信息并沒有隨著項目的進展被釋放,而是一直存在于數(shù)據(jù)庫中。如果,有工具能夠?qū)崿F(xiàn)這種數(shù)據(jù)壓縮,還是有實際意義的。
2.??????M3數(shù)據(jù)庫的管理
M3應(yīng)用程序中自帶有數(shù)據(jù)庫管理工具,Administration Tools->Control Panel ->DB Utility
這個工具中可以對數(shù)據(jù)庫實現(xiàn)創(chuàng)建,備份,恢復(fù),定期備份等功能。這個功能是系統(tǒng)管理必須要了解的功能,也是使用最頻繁的功能。具體的操作使用就不在這里贅述了。唯一遺憾的是,數(shù)據(jù)管理的這個功能,并沒有像其它功能一樣,給我們提供可以開放訪問的接口。所以很多維護工作只能手工進行。
3.??????數(shù)據(jù)壓縮程序的設(shè)計思路
這個小程序是在我們理解M3數(shù)據(jù)庫結(jié)構(gòu)的基礎(chǔ)上開發(fā)而成。首先通過索引庫讀取有效元素的列表。再通過這些元素的指向獲得EOB數(shù)據(jù)庫上面的內(nèi)容,最后生成一個新的EOB數(shù)據(jù)庫。這個操作做成類似與,在DB Utility里面,把原有的內(nèi)容通過Split功能,導(dǎo)出成SDB格式文件,再新建數(shù)據(jù)庫,把這些內(nèi)容導(dǎo)入進新數(shù)據(jù)庫。這樣完成了一次整理,只是我們這里通過程序化的手段,自動的完成了這么一次數(shù)據(jù)庫的整理。
4. 壓縮程序的開發(fā)
???????? 通過不斷的測試,這里編寫了一個測試程序,有興趣的朋友可以下載試用。這個程序只是一個初始版本,單線程處理。在處理的時候?qū)τ诖笮偷臄?shù)據(jù)庫(40G)還是比較慢的,大概花了4個小時,但是把數(shù)據(jù)庫壓縮到25G,足足壓縮了15G,可見,還是有些作用的。
下面就是程序的主界面:
操作步驟如下:
第一步:選擇數(shù)據(jù)庫DB的文件夾,程序會根據(jù)里面所包含的數(shù)據(jù)庫名稱,在列表中列出來。
第二步:選擇需要壓縮的數(shù)據(jù)庫
第三步:點擊開始壓縮。
如果文件比較大,就需要等待不少時間,這個主要是用單線程的緣故。往后,可以開發(fā)多線程,那樣就可以大大提高壓縮的速度。
還有需要提醒朋友的是,這個是測試程序,如果用在正式的項目,還請?zhí)崆白龊脗浞輪?/span>。如果,想一起交流的可以加我微信或者email我。
下載分享程序
總結(jié)
以上是生活随笔為你收集整理的M3数据库的压缩程序设计M3 Eob Database Compacted的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自动隐身、无察觉截屏、带有密码保护的监视
- 下一篇: mysql数据库面试题带答案(一)