程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> 對DB2數據庫設計三個建議的講解

對DB2數據庫設計三個建議的講解

編輯:DB2教程

就是以中文狀態下安裝DB2數據庫還是以英文狀態安裝數據庫。如在啟動安裝程序的時,可以利用/ilanguage選項來指定安裝過程中所采用的相關語言。以下就是文章的主要內容描述。

一、選擇合適的語言與數據庫字符集。

在企業中部署數據庫的時候,首先需要在操作系統上安裝數據庫。而在安裝數據庫的時候,需要選擇安裝的語言環境。即是以中文狀態下安裝數據庫還是以英文狀態安裝數據庫。如在啟動安裝程序的時,可以利用/ilanguage選項來指定安裝過程中所采用的語言。到目前為止,DB2數據庫已經支持很多種語言。那麼數據庫在安裝過程中,該采用什麼語言呢?筆者建議,只要數據庫管理員有一點英語基礎,最好能夠采用英文語言環境來進行安裝。雖然說現在DB2數據庫的中文語言環境已經設計的比較完善,但是筆者仍然擔心其有一些不知名的漏洞。為此筆者在安裝DB2數據庫的時候,基本上都采用的是英文語言環境來進行安裝。即將語言設置為“EN”,表示英文。提高DB2數據備份與恢復的效率。

另外如果DB2數據庫中要保存英文以外的數據,或者說用戶會使用不同的字符集訪問數據庫時,還需要在數據庫安裝過程中選擇特定的數據庫字符集。DB2數據庫中的所有字符數據,包括數據字典中的數據,都是存儲在數據庫字符集中的。如果用戶使用不同的字符集訪問數據庫時,數據庫管理員就需要選擇包含所有這些用戶的字符集的超集。只有如此,才能夠確保系統能夠很方便的使用替代字符完成字符的轉換,從而提高數據庫的性能。如果用戶選擇的字符集不對,有可能會出現一些莫名其妙的問題。如一次用戶在安裝數據庫過程中,沒有選擇合適的字符集。雖然在使用的過程中,其存儲中文字符沒有問題。但是當對數據庫采取還原操作時,卻發現還原後的數據庫中有些原來是中文字符的地方,盡然出現了亂碼。這主要就是沒有選擇合適的字符集惹的禍。有時候如果字符集選擇不當的話,從外部數據源(如Excel表格)導入數據的時候,中文數據也會無法順利導入。所以,數據庫管理員在安裝數據庫的時候,需要根據實際企業,來選擇合適的字符集。

二、評估數據庫對象的大小、數量。

DB2數據庫的性能與穩定性直接跟數據庫對象的多少、大小有關。如果對象很少,不復雜,那麼就算不怎麼規劃,也能夠達到比較高的性能。如果對象數據比較多、比較大的話,那麼就需要在數據庫設計之前好好的規劃,否則會在很大程度上影響數據庫的性能與穩定性。其實DB2數據庫就好像一個倉庫,數據庫中的對象(如索引、數據表、表空間)等等就好像倉庫中的貨物。如果貨物比較少,那麼隨便放放,倉庫都顯得很空曠。貨物尋找起來也會很方便。但是如果貨物數量比較多、比較大,就必須要對其存儲空間進行合理規劃。只有如此才能夠讓倉庫的空間利用率達到最佳狀態。並且貨物的存放有序,在查找起來也特別的方便。筆者這裡就以倉庫管理為例,說話該如何做好數據庫對象大小、數量等方便的評估,以及他們對於數據庫性能與穩定性的影響。

1、根據對象大小來規劃存儲空間。在倉庫貨物的擺放上,要根據貨物的大小來規劃存儲空間。或者說要首先防止大的貨物。只有如此空間的利用率才會最高。其實在規劃DB2對象的時候,也是如此。如某些表可能會包含的記錄比較多,屬於大表。此時數據庫管理員就需要考慮,是否將其放置在一個獨立的表空間或者硬盤空間上,以提高數據操作的性能。大表所對應的索引往往也是比較大的。為此在硬件條件允許的情況下,將索引表與數據表分別存放在不同的硬盤上,可以提高數據庫的性能。而對於一些比較小的對象(如數據表),可以將它們存放在一個表空間中。其實這個表空間就好像倉庫中的一個個紙盒子。將小的對象放入到這個“紙盒子”中,不但不占空間,而且也容易管理。

2、根據對象的使用頻率來規劃存放空間。在倉庫中擺放物品的時候,往往會把近期就要用到的貨物或者頻繁需要用到的東西放在倉庫門口或者容易拿到的地方。如此在拿這些貨物時就會比較便捷,也不會對其他貨物產生影響。對於DB2數據庫中的對象來說,也是這麼一回事。可以將那些訪問量比較大的對象,如索引、數據表,存放在性能比較好的硬盤上或者單獨的硬盤中。此時訪問這些數據,就不會與其它對象產生I/O沖突,操作起來速度就會比較快。而將不怎麼用到的對象,存放在一起。由於他們不怎麼被用到,所以即使存放在性能比較低的硬盤上,其對數據庫性能產生的負面影響也是非常有限的。在DB2數據庫裡面如何更新執行計劃

3、根據類別來存放數據庫對象。在倉庫中存放貨物的時候,還會對其進行分類。然後根據類別來進行存放。這有利於貨物的管理與檢索。其實在數據庫對象存儲空間設計時,也需要考慮這個因素。如現在應用軟件在設計的時候,很多都是根據模塊來設計。那麼在數據庫對象設計時,也需要根據這個模塊來設計存儲的空間。如將同一個模塊的數據庫對象存放在同一個表空間內。不過這可能會跟上面的兩個建立相違背。此時最好是在對象的命名上做文章。如可以根據模塊的不同,分別給數據庫對象取一個相同的前綴或者後綴。如即使同一塊模塊要用到多個表空間,此時就可以給表空間一個相同的前綴。如此在管理數據庫對象的時候,根據表空間的前綴就可以判斷其所屬的模塊了。如果再加上一個後綴來表示其數據庫對象的分類,那麼就更合理了。為此在管理數據庫對象的時候,要執行分類管理。不僅要從技術上對其進行分類,如分為索引、數據表、關鍵字等等。還需要從功能上進行分類,如按應用程序的模塊來進行分類等等。

三、設計好數據庫備份與還原的方案。

在數據庫交付生產使用之後,往往需要進行大量的測試。但是在測試過程中往往又會產生很多的垃圾數據。可是交給企業應用的,肯定是一個干淨的數據庫系統。為此在數據庫設計的時候,就需要想好如果減少測試過程中的垃圾數據。或者采取什麼樣的方式來實現在交互時自動清除垃圾數據的機制。

一般來說,想要一個數據庫備份與還原的方案,減少數據庫測試所產生的垃圾數據。如現在在給企業部署數據庫的時候,往往是先安裝一個干淨的數據庫系統。當然字符集這些需要預先設置好。然後再利用數據庫還原功能將預先定義好的數據庫模型還原出來。

另外有些時候需要兩個方案互為補充。如在數據庫初始化的過程中,采用數據庫還原的方式來創建數據庫對象。但是在應用軟件升級的時候,由於此時已經有了用戶的數據,為此不能夠在使用數據庫還原的方法。而是通過應用程序來執行某些SQL代碼,來調整或者增加部分數據庫對象。無論采用哪一種方式,需要遵循的一個原則就是在給企業創建數據庫對象時要最大限度的減少測試。而要做到這一點,就是需要先在測試服務器上創建對象並測試對象可用。然後直接將相關的SQL代碼在投入使用的數據庫服務器上執行。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved