佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > Oracle平臺應(yīng)用數(shù)據(jù)庫系統(tǒng)的設(shè)計與開發(fā)

Oracle平臺應(yīng)用數(shù)據(jù)庫系統(tǒng)的設(shè)計與開發(fā)

熱門標(biāo)簽:AI電銷 地方門戶網(wǎng)站 服務(wù)外包 呼叫中心市場需求 Linux服務(wù)器 鐵路電話系統(tǒng) 網(wǎng)站排名優(yōu)化 百度競價排名
正在看的ORACLE教程是:Oracle平臺應(yīng)用數(shù)據(jù)庫系統(tǒng)的設(shè)計與開發(fā)。Oracle是目前應(yīng)用最廣泛的數(shù)據(jù)庫系統(tǒng)。一個完整的數(shù)據(jù)庫系統(tǒng)包括系統(tǒng)硬件、操作系統(tǒng)、網(wǎng)絡(luò)層、DBMS(數(shù)據(jù)庫管理系統(tǒng))、應(yīng)用程序與數(shù)據(jù),各部分之間是互相依賴的,對每個部分都必須進(jìn)行合理的配置、設(shè)計和優(yōu)化才能實(shí)現(xiàn)高性能的數(shù)據(jù)庫系統(tǒng)。本文討論筆者使用Oracle開發(fā)局域網(wǎng)中、小型數(shù)據(jù)庫應(yīng)用中,系統(tǒng)硬件的選擇與使用、應(yīng)用數(shù)據(jù)庫系統(tǒng)設(shè)計與開發(fā)方面的一些心得和建議。應(yīng)用數(shù)據(jù)庫系統(tǒng)包含應(yīng)用數(shù)據(jù)庫和應(yīng)用兩方面的內(nèi)容,應(yīng)用數(shù)據(jù)庫就是生產(chǎn)數(shù)據(jù)庫,與系統(tǒng)數(shù)據(jù)庫相對。

  系統(tǒng)硬件的選擇與使用

  與數(shù)據(jù)庫系統(tǒng)密切相關(guān)的硬件主要有CPU、內(nèi)存、集群、存儲設(shè)備等,這里不對集群進(jìn)行討論。

  1、CPU 

  CPU的數(shù)目和速度直接影響數(shù)據(jù)庫操作的速度,Oracle數(shù)據(jù)庫提供并行查詢選項(xiàng),允許SQL操作以協(xié)同方式在多個CPU上執(zhí)行,可以很大程度的發(fā)揮多CPU的性能。為系統(tǒng)添加CPU前,首先要對應(yīng)用程序的SQL代碼做優(yōu)化,提高應(yīng)用程序的效率,質(zhì)量低劣的應(yīng)用可能會引起CPU資源的無謂的消耗;其次,要了解操作系統(tǒng)對CPU數(shù)目的限制及系統(tǒng)的可擴(kuò)展性。在系統(tǒng)CPU資源已定的情況下,要對各類應(yīng)用進(jìn)行分析,在保證關(guān)鍵應(yīng)用正常運(yùn)行的前提下,盡可能將大量占用CPU資源的應(yīng)用放在系統(tǒng)相對空閑的時候進(jìn)行。良好的工作調(diào)度可以有效減少對CPU的競爭使用,加快系統(tǒng)的響應(yīng)時間。

  2、內(nèi)存

  數(shù)據(jù)庫系統(tǒng)中,應(yīng)保證有足夠大的內(nèi)存。在UNIX系統(tǒng)中,如果系統(tǒng)的物理內(nèi)存小于1GB,可將交換區(qū)的大小設(shè)為內(nèi)存的4倍,否則,可設(shè)為內(nèi)存的2倍,交換區(qū)要放在磁盤速度最快的硬盤上。Oracle 的SGA區(qū)大小直接關(guān)系到數(shù)據(jù)庫操作的性能,一般來說,SGA區(qū)的大小可設(shè)為系統(tǒng)可用內(nèi)存的55%到57%,SGA區(qū)過多占用系統(tǒng)內(nèi)存反而會降低性能。在應(yīng)用系統(tǒng)運(yùn)行中,應(yīng)定期監(jiān)測系統(tǒng)的內(nèi)存使用情況,對關(guān)鍵應(yīng)用進(jìn)行分析,根據(jù)應(yīng)用適時調(diào)整SGA區(qū)各部分的大小。Oracle9i可在不重新啟動數(shù)據(jù)庫的情況下修改SGA區(qū)的參數(shù),實(shí)時改變SGA區(qū)的大小。

  3、存儲設(shè)備

  在網(wǎng)絡(luò)時代,信息資源的積累和廣泛應(yīng)用對數(shù)據(jù)存儲技術(shù)的發(fā)展提出了更大的挑戰(zhàn),數(shù)據(jù)存儲模式從傳統(tǒng)的總線連接模式進(jìn)入了網(wǎng)絡(luò)存儲模式。但存儲設(shè)備依然是硬盤、磁帶(帶庫)、磁盤陣列,在中、小型數(shù)據(jù)庫應(yīng)用中傳統(tǒng)存儲模式仍占主導(dǎo)地位。

  磁盤I/O是數(shù)據(jù)庫操作的瓶頸之一,磁盤的合理選擇和使用在數(shù)據(jù)庫系統(tǒng)中顯得尤為重要。在最初做數(shù)據(jù)庫系統(tǒng)規(guī)劃時,應(yīng)充分考慮到系統(tǒng)的容量和預(yù)期的增長,盡可能為以后的擴(kuò)展留足空間。在硬盤和磁盤陣列的選擇與使用中,應(yīng)注意以下幾點(diǎn): 

  ·選擇支持熱插拔功能的硬盤,這樣在出現(xiàn)硬盤Oracle 平臺應(yīng)用數(shù)據(jù)庫系統(tǒng)的設(shè)計與開發(fā)失敗時,可以在系統(tǒng)正常運(yùn)行的情況下更換硬盤; 

  ·不要選擇太大的硬盤,切記對Oracle 應(yīng)用程序,1~4GB大小的硬盤是比較合適的,最好購買大量的中小型硬盤,這樣在配置RAID時可提供更大的靈活性; 

  ·如果選用了磁盤陣列,對于Oracle數(shù)據(jù)庫應(yīng)用,如果經(jīng)費(fèi)能夠支持,RAID 0+1是最佳的配置方法。在RAID 5中,讀操作性能得到了一定的改善,但寫性能損失很大,如果某個硬盤失敗,硬盤重建的工作量非常大,RAID 5 適用于DSS(決策支持系統(tǒng))應(yīng)用,對OLTP(聯(lián)機(jī)事物處理)應(yīng)用不太合適; 

  ·在實(shí)現(xiàn)RAID時,要正確地選擇分條的大小,決定分條大小的三個主要因素是:應(yīng)用程序的特性(DSS、OLTP、批處理)、操作系統(tǒng)與數(shù)據(jù)庫的數(shù)據(jù)塊大小、磁盤陣列中的硬盤數(shù)目。數(shù)據(jù)庫的數(shù)據(jù)塊大小應(yīng)是操作系統(tǒng)數(shù)據(jù)塊大小的整數(shù)倍,同樣分條大小也必須是操作系統(tǒng)數(shù)據(jù)塊大小的整數(shù)倍。如果使用裸設(shè)備,分條大小應(yīng)是操作系統(tǒng)物理數(shù)據(jù)塊的大小。分條可按照水平方向進(jìn)行,也可按照垂直方向進(jìn)行。水平分條跨越每個硬盤控制器進(jìn)行,垂直分條跨越整個硬盤集合進(jìn)行,分條集合中的成員數(shù)應(yīng)不大于硬盤控制器數(shù)。OLTP應(yīng)用程序,數(shù)據(jù)訪問的數(shù)據(jù)量不大,一般可選擇32KB 或64KB 的分條大小,而DSS應(yīng)用程序訪問的數(shù)據(jù)量大,可考慮使用64KB、128KB或256KB的分條大小。

  應(yīng)用數(shù)據(jù)庫的設(shè)計與開發(fā)

  Oracle數(shù)據(jù)庫軟件安裝和配置完成后,就進(jìn)入了應(yīng)用數(shù)據(jù)庫的設(shè)計階段,應(yīng)用數(shù)據(jù)庫設(shè)計包括邏輯設(shè)計與物理設(shè)計。合理的邏輯設(shè)計會大大提高數(shù)據(jù)庫的性能,增強(qiáng)數(shù)據(jù)庫的可維護(hù)性。在設(shè)計中根據(jù)應(yīng)用,抽象出實(shí)體關(guān)系模型,將實(shí)體關(guān)系圖映射為標(biāo)準(zhǔn)化(數(shù)據(jù)完整、與應(yīng)用無關(guān)、存儲優(yōu)化)的關(guān)系模型(數(shù)據(jù)庫對象),當(dāng)前有一些輔助工具(Oracle Designer等)來實(shí)現(xiàn)實(shí)體關(guān)系圖到SQL代碼的映射;數(shù)據(jù)庫的物理設(shè)計就是數(shù)據(jù)庫對象的存儲設(shè)計,即如何為數(shù)據(jù)庫對象分配存儲空間。

  在進(jìn)行數(shù)據(jù)庫對象的設(shè)計前,數(shù)據(jù)庫的管理和開發(fā)人員對應(yīng)用和應(yīng)用的數(shù)據(jù)及其應(yīng)用關(guān)系要有一個詳盡的理解,根據(jù)應(yīng)用進(jìn)行數(shù)據(jù)庫對象的規(guī)劃和設(shè)計,大概包含以下幾個方面: 

  ·確定需建立的數(shù)據(jù)庫用戶,明確用戶的系統(tǒng)權(quán)限和表空間限額,為用戶設(shè)計資源限制profile; 

  ·確定應(yīng)用數(shù)據(jù)應(yīng)分多少個表進(jìn)行設(shè)計,各表分別屬于的用戶,各用戶對各個表的操作權(quán)限; 

  ·明確各表的結(jié)構(gòu),確定表的主鍵及約束;

  ·明確哪些表是應(yīng)用運(yùn)行的關(guān)鍵表,哪些是事務(wù)表; 

  ·分析哪些表是主表,哪些表是從表,確定表和表之間的外鍵約束,選擇合適的表作為表連接的驅(qū)動表; 

  ·根據(jù)應(yīng)用,確定在哪些表上對哪些列建立合適的索引;

  ·根據(jù)表和索引的設(shè)計,確定要創(chuàng)建的表空間和回滾段,為表空間和回滾段選擇合適的磁盤,盡可能創(chuàng)建本地管理的表空間,減少數(shù)據(jù)庫空間管理方面的工作; 

  ·明確需要編寫的觸發(fā)器及過程; 

  ·為數(shù)據(jù)庫對象選擇備份和恢復(fù)策略。

  在數(shù)據(jù)庫設(shè)計階段,有時未必能完全確定合適的數(shù)據(jù)庫對象的特征,應(yīng)用設(shè)計和開發(fā)中還可能發(fā)現(xiàn)不合適的地方,需要回過頭來進(jìn)行調(diào)整和修改。但設(shè)計階段的工作越細(xì)致,出現(xiàn)問題的可能性就越小,工作的效率就越高。

  創(chuàng)建數(shù)據(jù)庫對象時,要根據(jù)數(shù)據(jù)庫對象的特點(diǎn),結(jié)合存儲設(shè)備的大小、數(shù)量及速度等,對數(shù)據(jù)庫對象分類進(jìn)行存儲,最大限度地消除或減少資源競爭。在數(shù)據(jù)庫對象創(chuàng)建時主要應(yīng)遵循以下原則: 

  ·應(yīng)用數(shù)據(jù)應(yīng)放在單獨(dú)的表空間,不要將應(yīng)用數(shù)據(jù)放在系統(tǒng)表空間,為防止無意的使用系統(tǒng)表空間,將應(yīng)用用戶的系統(tǒng)表空間限額設(shè)為0。

  ·索引和表應(yīng)放在位于不同硬盤上的不同的表空間,這樣會提高數(shù)據(jù)庫操作的速度。

  ·需要同時被訪問的表要分開存放,利于并發(fā)訪問的實(shí)施。

  ·如果磁盤數(shù)量有限,可把不常聯(lián)合訪問的表放在相同的磁盤上。

  ·預(yù)分配的原則。創(chuàng)建數(shù)據(jù)庫對象(表空間、回滾段、表、索引等)時,根據(jù)對象的情況設(shè)置合適的storage參數(shù)非常重要。創(chuàng)建對象設(shè)計時,對對象的容量和預(yù)期的增長有一個估計,這樣才能確定存儲參數(shù)的大小。一般來說,應(yīng)預(yù)先給表和索引等數(shù)據(jù)庫對象分配足夠的空間,數(shù)據(jù)庫段不要太多地做動態(tài)擴(kuò)展,因?yàn)闀绊憯?shù)據(jù)庫性能。一個段(segment)由一個區(qū)(extent)構(gòu)成是最理想的,initial 參數(shù)可以稍大一點(diǎn),如果可能,可設(shè)為最大容量的大小,initial必須是db_block_size的整數(shù)倍;next參數(shù)的設(shè)置比較靈活,根據(jù)應(yīng)用進(jìn)行相應(yīng)的設(shè)置,但也必須是db_block_size的整數(shù)倍;為了減少數(shù)據(jù)庫碎片的產(chǎn)生,pctincrease參數(shù)應(yīng)該盡量設(shè)為0;更新操作比較少的段,pctfree要設(shè)置得小一點(diǎn),更新操作很多的段要設(shè)置得大一些;inittrans和freelists的值要相等,大小與并發(fā)事務(wù)數(shù)相關(guān)。

  ·分而治之的原則。大的數(shù)據(jù)庫表和索引可考慮進(jìn)行分區(qū)存放,不同的分區(qū)可位于不同的磁盤上,更好地均衡I/O。Oracle可以只對表的某些分區(qū)進(jìn)行查詢,這樣會提高查詢的速度;可對分區(qū)進(jìn)行數(shù)據(jù)的刪除、裝載,還可以移動分區(qū),對表的管理和控制具有更大的靈活性;可以有更多的策略選擇,更好地執(zhí)行備份和恢復(fù)操作。注意,對某些分區(qū)進(jìn)行操作后,在Oracle8i下必須重建全局索引。

  ·大小和增長趨勢類似的表最好放在相同的表空間,可以有效控制硬盤碎片的產(chǎn)生,提高空閑塊的可重用性。

  ·相同備份和恢復(fù)策略的表最好放在同一個表空間,這樣有助于備份和恢復(fù)工作的完成。

  ·對響應(yīng)時間要求苛刻的應(yīng)用所訪問的對象放在速度快的磁盤上。

標(biāo)簽:銅川 湖南 衡水 湘潭 蘭州 黃山 仙桃 崇左

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle平臺應(yīng)用數(shù)據(jù)庫系統(tǒng)的設(shè)計與開發(fā)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    寿光市| 鹿泉市| 阜阳市| 莒南县| 北碚区| 金沙县| 开江县| 七台河市| 朝阳市| 大方县| 滦平县| 米泉市| 英吉沙县| 樟树市| 灌云县| 彭州市| 师宗县| 沿河| 清水河县| 桓仁| 当涂县| 安徽省| 阳东县| 通山县| 龙胜| 库尔勒市| 呼玛县| 都兰县| 黎城县| 思南县| 东兰县| 井研县| 南召县| 思南县| 祁门县| 尼勒克县| 沿河| 乌苏市| 永城市| 海淀区| 枣强县|