首先,選擇合適的語言和數據庫字符集。
在企業中部署數據庫時,首先需要在操作系統上安裝數據庫。安裝數據庫時,需要選擇安裝的語言環境。也就是說,安裝中文或英文的數據庫。例如,在啟動安裝程序時,可以使用/i語言選項來指定安裝過程中使用的語言。到目前為止,DB2數據庫已經支持多種語言。那麽數據庫安裝過程中應該使用什麽語言呢?筆者建議,只要數據庫管理員有壹點英語基礎,最好在英語語言環境下安裝。雖然DB2數據庫的中文語言環境已經設計得很好了,但是筆者還是擔心它有壹些不為人知的漏洞。所以我在安裝DB2數據庫的時候,基本上都是用英語語言環境來安裝。即語言設置為“EN”,即英語。提高DB2數據備份和恢復的效率。
此外,如果您想在DB2數據庫中保存英語以外的數據,或者用戶將使用不同的字符集來訪問數據庫,那麽您需要在數據庫安裝期間選擇壹個特定的數據庫字符集。DB2數據庫中的所有字符數據,包括數據字典中的數據,都存儲在數據庫字符集中。如果用戶使用不同的字符集訪問數據庫,數據庫管理員需要選擇壹個包含所有這些用戶的字符集的超集。只有這樣,才能保證系統能夠方便地使用替代字符完成字符轉換,從而提高數據庫的性能。如果用戶選擇了錯誤的字符集,可能會出現壹些令人費解的問題。例如,用戶在安裝數據庫時沒有選擇合適的字符集。雖然在使用過程中存儲漢字沒有問題。但是當數據庫恢復後,發現恢復後的數據庫中壹些原來是漢字的地方出現了亂碼。這主要是沒有選擇正確的字符集造成的。有時,如果字符集選擇不當,從外部數據源(如Excel表)導入數據時,中文數據將無法順利導入。因此,在安裝數據庫時,數據庫管理員需要根據企業實際選擇合適的字符集。
其次,評估數據庫對象的大小和數量。
DB2數據庫的性能和穩定性與數據庫對象的數量和大小直接相關。如果對象少且不復雜,那麽即使不做規劃,也能取得較高的績效。如果對象數據多且大,就要在數據庫設計前做好規劃,否則會極大影響數據庫的性能和穩定性。實際上,DB2數據庫就像壹個倉庫,數據庫中的對象(如索引、數據表和表空間)就像倉庫中的貨物。如果貨物很少,隨便放著倉庫會顯得很空。商品也會很方便找。但如果貨物量比較大,就要合理規劃其存儲空間。只有這樣,倉庫的空間利用率才能達到最佳狀態。而且貨物存放有序,特別方便查找。筆者以倉庫管理為例,談談如何評估數據庫對象的大小和數量,以及它們對數據庫性能和穩定性的影響。
1.根據物件的大小來規劃收納空間。在倉庫放置貨物時,應根據貨物的大小來規劃存儲空間。還是先防大貨。只有這樣,空間的利用率才能最高。事實上,在規劃DB2對象時也是如此。例如,壹些表可能包含更多記錄,並且屬於大型表。這時候數據庫管理員就需要考慮是放在獨立的表空間還是硬盤空間,提高數據操作的性能。對應於大表的索引通常相對較大。因此,如果硬件條件允許,將索引表和數據表存儲在不同的硬盤上可以提高數據庫的性能。對於壹些較小的對象(比如數據表),它們可以存儲在表空間中。實際上,這個表空間就像是倉庫中的壹個紙箱子。把小物件放進這個“紙盒子”裏,不僅不占空間,還便於管理。
2.根據對象的使用頻率來規劃存儲空間。在倉庫擺放物品時,近期會用到的物品或者需要經常使用的東西,往往會放在倉庫門口或者容易拿到的地方。這樣拿這些貨會更方便,也不會影響其他貨。DB2數據庫中的對象也是如此。可以把那些訪問量大的對象,比如索引、數據表等,存儲在性能好的硬盤上,或者單獨的硬盤上。此時訪問這些數據不會造成與其他對象的I/O沖突,操作速度會更快。而不是將不常使用的對象存儲在壹起。因為它們很少被使用,即使存儲在低性能的硬盤上,它們對數據庫性能的負面影響也是非常有限的。如何更新DB2數據庫中的執行計劃
3.根據類別存儲數據庫對象。當貨物存儲在倉庫中時,它們也被分類。然後按類別存放。這有利於貨物的管理和檢索。事實上,在設計數據庫對象的存儲空間時,也應該考慮這個因素。比如設計應用軟件的時候,很多都是按照模塊來設計的。那麽在設計數據庫對象的時候,我們也需要根據這個模塊來設計存儲空間。例如,同壹模塊的數據庫對象存儲在同壹個表空間中。然而,這可能與上述兩種構造相反。這時候最好在對象的命名上做文章。例如,數據庫對象可以根據不同的模塊被賦予相同的前綴或後綴。例如,即使同壹個模塊需要使用多個表空間,此時也可以為表空間賦予相同的前綴。這樣,在管理數據庫對象時,就可以根據表空間的前綴來判斷它們所屬的模塊。添加壹個後綴來表示其數據庫對象的分類更為合理。因此,在管理數據庫對象時,應實施分類管理。不僅要從技術上分類,比如索引、數據表、關鍵詞等等。還需要從功能上進行分類,比如按應用的模塊等等。
第三,設計壹個好的數據庫備份和恢復方案。
在數據庫交付到生產環境之後,通常需要進行大量的測試。然而,在測試的過程中,往往會產生大量的垃圾數據。但是,必須是幹凈的數據庫系統,交給企業去應用。因此,在設計數據庫時,我們需要考慮如何減少測試過程中的垃圾數據。或者用什麽方式實現交互時自動清除垃圾數據的機制。
壹般來說,我們希望有壹個數據庫備份和恢復方案來減少數據庫測試產生的垃圾數據。例如,將數據庫部署到企業時,通常會先安裝壹個幹凈的數據庫系統。當然,字符集需要提前設置。然後通過使用數據庫恢復功能來恢復預定義的數據庫模型。
此外,有時兩種方案需要相互補充。例如,在數據庫初始化的過程中,通過數據庫恢復來創建數據庫對象。而在應用軟件升級時,由於此時用戶的數據已經可用,所以無法使用數據庫恢復的方法。相反,壹些SQL代碼由應用程序執行,以調整或增加壹些數據庫對象。無論哪種方式,在為企業創建數據庫對象時,要遵循的壹個原則是盡量減少測試。為此,您需要在測試服務器上創建壹個對象,並使測試對象可用。然後直接在投入使用的數據庫服務器上執行相關的SQL代碼。