欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2007年03月07日 00:00:00   作者:  
正在看的ORACLE教程是:Oracle平臺(tái)應(yīng)用數(shù)據(jù)庫(kù)系統(tǒng)的設(shè)計(jì)與開發(fā)。Oracle是目前應(yīng)用最廣泛的數(shù)據(jù)庫(kù)系統(tǒng)。一個(gè)完整的數(shù)據(jù)庫(kù)系統(tǒng)包括系統(tǒng)硬件、操作系統(tǒng)、網(wǎng)絡(luò)層、DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng))、應(yīng)用程序與數(shù)據(jù),各部分之間是互相依賴的,對(duì)每個(gè)部分都必須進(jìn)行合理的配置、設(shè)計(jì)和優(yōu)化才能實(shí)現(xiàn)高性能的數(shù)據(jù)庫(kù)系統(tǒng)。本文討論筆者使用Oracle開發(fā)局域網(wǎng)中、小型數(shù)據(jù)庫(kù)應(yīng)用中,系統(tǒng)硬件的選擇與使用、應(yīng)用數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)與開發(fā)方面的一些心得和建議。應(yīng)用數(shù)據(jù)庫(kù)系統(tǒng)包含應(yīng)用數(shù)據(jù)庫(kù)和應(yīng)用兩方面的內(nèi)容,應(yīng)用數(shù)據(jù)庫(kù)就是生產(chǎn)數(shù)據(jù)庫(kù),與系統(tǒng)數(shù)據(jù)庫(kù)相對(duì)。

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

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

  1、CPU 

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

  2、內(nèi)存

  數(shù)據(jù)庫(kù)系統(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ù)庫(kù)操作的性能,一般來(lái)說(shuō),SGA區(qū)的大小可設(shè)為系統(tǒng)可用內(nèi)存的55%到57%,SGA區(qū)過(guò)多占用系統(tǒng)內(nèi)存反而會(huì)降低性能。在應(yīng)用系統(tǒng)運(yùn)行中,應(yīng)定期監(jiān)測(cè)系統(tǒng)的內(nèi)存使用情況,對(duì)關(guān)鍵應(yīng)用進(jìn)行分析,根據(jù)應(yīng)用適時(shí)調(diào)整SGA區(qū)各部分的大小。Oracle9i可在不重新啟動(dòng)數(shù)據(jù)庫(kù)的情況下修改SGA區(qū)的參數(shù),實(shí)時(shí)改變SGA區(qū)的大小。

  3、存儲(chǔ)設(shè)備

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

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

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

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

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

  ·在實(shí)現(xiàn)RAID時(shí),要正確地選擇分條的大小,決定分條大小的三個(gè)主要因素是:應(yīng)用程序的特性(DSS、OLTP、批處理)、操作系統(tǒng)與數(shù)據(jù)庫(kù)的數(shù)據(jù)塊大小、磁盤陣列中的硬盤數(shù)目。數(shù)據(jù)庫(kù)的數(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)行。水平分條跨越每個(gè)硬盤控制器進(jìn)行,垂直分條跨越整個(gè)硬盤集合進(jìn)行,分條集合中的成員數(shù)應(yīng)不大于硬盤控制器數(shù)。OLTP應(yīng)用程序,數(shù)據(jù)訪問(wèn)的數(shù)據(jù)量不大,一般可選擇32KB 或64KB 的分條大小,而DSS應(yīng)用程序訪問(wèn)的數(shù)據(jù)量大,可考慮使用64KB、128KB或256KB的分條大小。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  ·預(yù)分配的原則。創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象(表空間、回滾段、表、索引等)時(shí),根據(jù)對(duì)象的情況設(shè)置合適的storage參數(shù)非常重要。創(chuàng)建對(duì)象設(shè)計(jì)時(shí),對(duì)對(duì)象的容量和預(yù)期的增長(zhǎng)有一個(gè)估計(jì),這樣才能確定存儲(chǔ)參數(shù)的大小。一般來(lái)說(shuō),應(yīng)預(yù)先給表和索引等數(shù)據(jù)庫(kù)對(duì)象分配足夠的空間,數(shù)據(jù)庫(kù)段不要太多地做動(dòng)態(tài)擴(kuò)展,因?yàn)闀?huì)影響數(shù)據(jù)庫(kù)性能。一個(gè)段(segment)由一個(gè)區(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ù)庫(kù)碎片的產(chǎn)生,pctincrease參數(shù)應(yīng)該盡量設(shè)為0;更新操作比較少的段,pctfree要設(shè)置得小一點(diǎn),更新操作很多的段要設(shè)置得大一些;inittrans和freelists的值要相等,大小與并發(fā)事務(wù)數(shù)相關(guān)。

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

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

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

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

相關(guān)文章

  • oracle SQL命令大全

    oracle SQL命令大全

    oracle SQL命令,學(xué)習(xí)oracle的朋友有福了。
    2009-06-06
  • oracle創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)三步走

    oracle創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)三步走

    這篇文章主要介紹了oracle如何創(chuàng)建數(shù)據(jù)庫(kù)和用戶,以及每一步所涉及到的代碼,需要的朋友可以參考下
    2015-08-08
  • Oracle導(dǎo)dmp出現(xiàn)文件ORA-12154: TNS: 無(wú)法解析指定的連接標(biāo)識(shí)符問(wèn)題的解決方案

    Oracle導(dǎo)dmp出現(xiàn)文件ORA-12154: TNS: 無(wú)法解析指定的連接標(biāo)識(shí)符問(wèn)題的解決方案

    這篇文章主要介紹了Oracle導(dǎo)dmp出現(xiàn)文件ORA-12154: TNS: 無(wú)法解析指定的連接標(biāo)識(shí)符問(wèn)題的解決方案,需要的朋友可以參考下
    2017-03-03
  • Oracle將查詢的結(jié)果放入一張自定義表中并再查詢數(shù)據(jù)

    Oracle將查詢的結(jié)果放入一張自定義表中并再查詢數(shù)據(jù)

    可以將查詢的結(jié)果放入到一張自定義表中,同時(shí)可以再?gòu)倪@個(gè)自定義的表中查詢數(shù)據(jù),詳細(xì)的sql如下,感興趣的朋友不要錯(cuò)過(guò)
    2014-08-08
  • 使用Navicat Premium連接Oracle的方法步驟

    使用Navicat Premium連接Oracle的方法步驟

    這篇文章主要介紹了使用Navicat Premium連接Oracle的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Oracle新增和刪除用戶

    Oracle新增和刪除用戶

    這篇文章介紹了Oracle新增和刪除用戶的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Oracle的默認(rèn)用戶密碼

    Oracle的默認(rèn)用戶密碼

    創(chuàng)建表空間和用戶時(shí),需要的時(shí)候竟然忘記了密碼,試了好多次都沒(méi)連接上,進(jìn)而用戶也被鎖定,下面就教您處理Oracle默認(rèn)用戶的密碼問(wèn)題的方法,希望對(duì)和我一樣情況的朋友們有所幫助
    2012-07-07
  • 解決The?Network?Adapter?could?not?establish?the?conn問(wèn)題

    解決The?Network?Adapter?could?not?establish?the?conn問(wèn)題

    這篇文章主要介紹了解決The?Network?Adapter?could?not?establish?the?conn問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Oracle游標(biāo)使用參考語(yǔ)句實(shí)例解析

    Oracle游標(biāo)使用參考語(yǔ)句實(shí)例解析

    這篇文章主要介紹了Oracle游標(biāo)使用參考語(yǔ)句實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Oracle中的索引講解

    Oracle中的索引講解

    這篇文章介紹了Oracle中的索引,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05

最新評(píng)論