文/張家旭
企業(yè)資源計(jì)劃(ERP)、MΙS以及其它管理信息系統(tǒng)的開發(fā)一般都會應(yīng)用到數(shù)據(jù)庫。開發(fā)應(yīng)用軟件的使用效果受到數(shù)據(jù)庫性能的優(yōu)劣影響,系統(tǒng)能否被研發(fā)出來和數(shù)據(jù)庫的性能好壞也有關(guān)聯(lián)。想要了解數(shù)據(jù)庫的性能的好壞要從多個(gè)方面考量,比如要考慮存儲空間的需求、査詢響應(yīng)時(shí)間等問題。本文就數(shù)據(jù)庫的優(yōu)化問題提出一些觀點(diǎn)。
懷利的ERP概念表明,ERP系統(tǒng)是一組應(yīng)用程序。利用數(shù)據(jù)庫和信息技術(shù)系統(tǒng),可以實(shí)現(xiàn)多個(gè)部門的無縫集成。集成性是ERP系統(tǒng)的標(biāo)志特點(diǎn),促進(jìn)了物流、資金流和信息流的有效聯(lián)合。物流、資金流和信息流的整合可以降低企業(yè)成本,提高工作效率,提高部門之間的流動性。是企業(yè)策略發(fā)展方向的有力的后盾。
在企業(yè)資源規(guī)劃系統(tǒng)的開發(fā)和設(shè)計(jì)過程中,很多優(yōu)秀的企業(yè)家都為ERP開發(fā)的更好提供了自己寶貴的經(jīng)驗(yàn)。它本身就是一個(gè)標(biāo)準(zhǔn)化的系統(tǒng)。ERP系統(tǒng)的運(yùn)行過程非常嚴(yán)格,有自己的管理規(guī)范,只有遵循相同的標(biāo)準(zhǔn)、相同的流程、正確的操作,才能完成一個(gè)工作環(huán)節(jié)。ERP系統(tǒng)是基于詳細(xì)的數(shù)據(jù)幫助企業(yè)進(jìn)行精細(xì)化管理。
在應(yīng)用企業(yè)資源規(guī)劃系統(tǒng)之前,在沒有明確的規(guī)范之前同一筆業(yè)務(wù)會被反復(fù)核對重復(fù)輸入,信息的傳遞很慢并且不能共同使用,信息和使用者之間存在斷層,企業(yè)中的大部分信息沒有辦法提高其利用率,相關(guān)業(yè)務(wù)也不能很好地共享信息。ERP在企業(yè)中應(yīng)用后,信息數(shù)據(jù)可以一起使用,提高工作效率,信息數(shù)據(jù)是企業(yè)的寶貴財(cái)富。方便領(lǐng)導(dǎo)和及時(shí)獲取各級信息,快速了解各部門工作、工作內(nèi)容。
數(shù)據(jù)庫系統(tǒng)是怎樣維持ERP系統(tǒng)正常運(yùn)轉(zhuǎn)的呢?第一,存儲和管理,基本操作各種數(shù)據(jù)如增產(chǎn)檢查和數(shù)據(jù)安全相關(guān)操作,如保護(hù)、備份、恢復(fù)、遷移、進(jìn)出口等。另一類是約束和操作,通常由數(shù)據(jù)庫管理系統(tǒng)提供的約束規(guī)則、觸發(fā)器和存儲過程來實(shí)現(xiàn)。數(shù)據(jù)庫系統(tǒng)是企業(yè)資源規(guī)劃系統(tǒng)的重要組成部分。數(shù)據(jù)存儲和業(yè)務(wù)處理的ERP系統(tǒng)的基礎(chǔ)和核心是數(shù)據(jù)庫。數(shù)據(jù)庫中的數(shù)據(jù)是很多的,通常會有數(shù)以百計(jì)的表和數(shù)百萬條記錄,而且在系統(tǒng)工作期間,數(shù)據(jù)庫系統(tǒng)常常存在多用戶并發(fā)訪問和操作。因此,優(yōu)化數(shù)據(jù)庫系統(tǒng)可以提高整個(gè)ERP系統(tǒng)的性能。
ERP系統(tǒng)具有權(quán)限控制的作用,而達(dá)到這一目的則是通過賦予用戶相應(yīng)的角色來實(shí)現(xiàn)的。不同的角色由不同的用戶來承擔(dān),這就會使效率降低,在不同的角色中同一個(gè)事務(wù)代碼會被多次重復(fù),修改用戶權(quán)限的工作繁重。
主要體現(xiàn)在兩個(gè)方面:
3.2.1 運(yùn)行性能測試
想要分析系統(tǒng)運(yùn)行的穩(wěn)定性的時(shí)候主要運(yùn)用到數(shù)據(jù)運(yùn)行性能分析,通俗地說就是觀測數(shù)據(jù)上線后系統(tǒng)是不是正常運(yùn)行,有沒有出現(xiàn)錯(cuò)誤等。
3.2.2 故障監(jiān)控能力測試
ERP系統(tǒng)運(yùn)行過程中可能會出現(xiàn)各種問題,比如因?yàn)槿斯げ僮魇д`而導(dǎo)致的問題、系統(tǒng)設(shè)計(jì)本身就存在問題,數(shù)據(jù)運(yùn)行故障監(jiān)控測試就是要分析系統(tǒng)在面對這種錯(cuò)誤時(shí)能否進(jìn)行預(yù)警。
伴隨著企業(yè)信息化進(jìn)程,數(shù)據(jù)在增長規(guī)模在變大用戶數(shù)目的劇增等,這些都會數(shù)據(jù)庫性能發(fā)生問題的誘因。數(shù)據(jù)庫的數(shù)量和系統(tǒng)的性能成反比,數(shù)據(jù)龐大就會使調(diào)用、查詢、更新等環(huán)節(jié)的操作時(shí)間變長。
索引是數(shù)據(jù)庫中的核心數(shù)據(jù)結(jié)構(gòu)。它的基本目的是提高查詢的效率。索引的使用要按照原則進(jìn)行,如不經(jīng)常連接的字段由優(yōu)化器自動生成索引等原則。如果在使用索引時(shí)查詢速度減慢了無法解釋的速度,嘗試使用系統(tǒng)工具檢查索引的完整性也是可以的,并在找到索引后修復(fù)問題。
數(shù)據(jù)倉庫和數(shù)據(jù)庫其實(shí)是不一樣的系統(tǒng),數(shù)據(jù)倉庫和數(shù)據(jù)庫的出發(fā)點(diǎn)是有區(qū)別的,處理冗余的方式不同,記錄數(shù)據(jù)的方式是不一樣的。解決問題是數(shù)據(jù)倉庫的首要任務(wù),在設(shè)置數(shù)據(jù)倉庫時(shí),您將從決策問題開始。一般而言,建立數(shù)據(jù)倉庫有以下步驟:
(1)我們要收集的信息是終端客戶的需求,收集之后進(jìn)行分析,分門別類劃分主題建立數(shù)據(jù)模型,所建立的數(shù)據(jù)模型要圍繞劃分的主題而定。該數(shù)據(jù)模型的特點(diǎn)是完整、清晰。這種特點(diǎn)對于企業(yè)來說是有利的。
(2)終端客戶的需要和數(shù)據(jù)源中包含很多隱藏信息需要我們?nèi)シ治鲅芯浚P(guān)于數(shù)據(jù)倉庫中數(shù)據(jù)的物理存儲結(jié)構(gòu)的計(jì)算可以設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)事實(shí)表。
(3)倉庫中的數(shù)據(jù)模型和業(yè)務(wù)邏輯可以通過元數(shù)據(jù)去了解和認(rèn)識。
(4)把獲取的數(shù)據(jù)按照不同主題分門別類的加載到數(shù)據(jù)倉庫中。
事實(shí)上,數(shù)據(jù)倉庫可以彌補(bǔ)ERP的缺陷。對于企業(yè)資源規(guī)劃系統(tǒng)而言,將面向交易和分析相結(jié)合,可以確保企業(yè)資源規(guī)劃系統(tǒng)能夠更好地管理企業(yè)的日常運(yùn)營,并幫助企業(yè)在數(shù)據(jù)聚合和歸納過程中降低成本。為企業(yè)未來發(fā)展做出正確的決策分析提供了保障。在決策性分析中數(shù)據(jù)倉庫一直領(lǐng)先于其他的系統(tǒng),對于企業(yè)資源規(guī)劃系統(tǒng)而言,將面向交易和分析相結(jié)合,可以確保企業(yè)資源規(guī)劃系統(tǒng)能夠更好地管理企業(yè)的日常運(yùn)營,并幫助企業(yè)在數(shù)據(jù)聚合和歸納過程中降低成本。為企業(yè)未來發(fā)展做出正確的決策分析提供了保障。因此,ERP系統(tǒng)在面向分析方面的缺陷可以通過數(shù)據(jù)倉庫來解決。
數(shù)據(jù)庫的存儲功能是十分強(qiáng)大的,但不代表它是沒有缺點(diǎn)的不會出現(xiàn)問題的。首先,當(dāng)要存儲的語句的邏輯性比較強(qiáng)的時(shí)候就會使句子比較長,這時(shí)候存儲功能就容易使句子的邏輯出現(xiàn)問題引發(fā)連鎖錯(cuò)誤。因此,存儲過程可根據(jù)其相似觸發(fā)器的優(yōu)化方法進(jìn)行優(yōu)化,并結(jié)合ERP系統(tǒng)的具體情況,認(rèn)為部分業(yè)務(wù)邏輯應(yīng)預(yù)先寫入應(yīng)用程序中。為了提高企業(yè)資源規(guī)劃系統(tǒng)的總體效率和績效。
所以在進(jìn)行系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)時(shí),應(yīng)根據(jù)不同的存儲材料選擇合適的存儲方式,這樣才能達(dá)到真正的優(yōu)化。一般來說,可以從以下幾個(gè)方面來考慮:
(1)應(yīng)用程序來負(fù)責(zé)檢查數(shù)據(jù)的合法性,數(shù)據(jù)之間的約束條件,數(shù)據(jù)都是合法可靠的才是有意義的。
(2)當(dāng)面對復(fù)雜多面的邏輯時(shí),利用應(yīng)用程序來提高開發(fā)和維護(hù)的效率。
(3)如果不能用通用語句實(shí)現(xiàn)它,則應(yīng)該考慮使用應(yīng)用程序。
指作為單個(gè)邏輯工作單元執(zhí)行的一系列操作就是事務(wù)。它是一種機(jī)制,機(jī)制的內(nèi)涵是只要有一步有錯(cuò)誤則全部失敗,只有全部都成功才能成功。開始事務(wù)、提交事務(wù)和撤銷這三種動作是一個(gè)事務(wù)中必不可少的。數(shù)據(jù)庫保存著所有的修改成功的操作數(shù)據(jù),只要有一個(gè)動作失敗,就無法成功,就必須恢復(fù)修改前的狀態(tài)。
引擎相當(dāng)于一個(gè)紐帶,把數(shù)據(jù)庫和應(yīng)用系統(tǒng)連接起來,讓采集、處理、輸出等環(huán)節(jié)環(huán)環(huán)相扣,有條不紊的運(yùn)作,引擎是十分重要的參考參數(shù),可以重置數(shù)據(jù)庫結(jié)構(gòu),在設(shè)計(jì)過程發(fā)揮引導(dǎo)作用。引擎與使用者之間是雙向的聯(lián)系,很高的自主性也是引擎的顯著的特點(diǎn),有程序設(shè)計(jì)導(dǎo)致的錯(cuò)誤是引擎可以預(yù)防和糾正的。
企業(yè)資源配置的規(guī)劃由ERP系統(tǒng)呈現(xiàn),而企業(yè)的效益和這種配置的線性規(guī)劃模型是相關(guān)聯(lián)的,那么我們應(yīng)該放在首位的任務(wù)就是建立線性規(guī)劃模型與模型的優(yōu)化,同時(shí)這也是我們?yōu)橹畩^斗的最終的目標(biāo)。項(xiàng)目要對企業(yè)的資源有所掌握,可以有以下兩種方法來實(shí)現(xiàn)。方法一是先建網(wǎng)、建庫、查詢、文件轉(zhuǎn)換,建立線性規(guī)劃模型,全力為實(shí)現(xiàn)自動化而努力,只是一件對人力對時(shí)間對技術(shù)要求都很高的工作實(shí)施起來是比較有難度的。想要把ERP系統(tǒng)的自動化水平提高,輔助功能也做好是一件具有積極意義的事情,但是對于處在發(fā)展中國家的我們來說資金和技術(shù)人員是個(gè)大困難,除了技術(shù)人員以外時(shí)間也是不可控的。這種研究類的一般需要耗費(fèi)很多的時(shí)間,時(shí)間也是一種成本。方法二是工作面縮小,建立完善的線性規(guī)劃模型之后再適時(shí)地建網(wǎng)建庫等一系列的操作,從而提高系統(tǒng)自動化。在各方面允許的情況下我們可以先選用第二種方法,現(xiàn)在很多人都有一個(gè)誤區(qū),以為必須要先建網(wǎng)才行,其實(shí)這不是必要的,可以先摸清企業(yè)的資源數(shù)據(jù)等,這種方法其實(shí)是更具有條理性的,操作的過程也是循序漸進(jìn)的。在這里需要清楚的是線性規(guī)劃模型的幾個(gè)特點(diǎn):靈活性、可視性、積木式的。所有企業(yè)都希望自己ERP系統(tǒng)是可以被靈活運(yùn)用的并且系統(tǒng)本身是十分靈活的。而積木式實(shí)質(zhì)上是說壓縮模型的一種方法。
數(shù)據(jù)庫性能的優(yōu)化問題還在不斷地探索并不是很成熟的技術(shù)。針對不同的具體情況我們要及時(shí)做出適當(dāng)調(diào)整。存儲過程可根據(jù)其相似觸發(fā)器的優(yōu)化方法進(jìn)行優(yōu)化,并結(jié)合ERP系統(tǒng)的具體情況,認(rèn)為部分業(yè)務(wù)邏輯應(yīng)預(yù)先寫入應(yīng)用程序中。為了提高企業(yè)資源規(guī)劃系統(tǒng)的總體效率和績效。在具體的優(yōu)化操作時(shí),要分析系統(tǒng)情況,迅速找出原因,選擇合理優(yōu)化措施,采取相應(yīng)的優(yōu)化手段提高系統(tǒng)效率,但在數(shù)據(jù)庫的優(yōu)化問題上要不斷地學(xué)習(xí)先進(jìn)的理論和技術(shù)。