Oracle平臺應(yīng)用數(shù)據(jù)庫系統(tǒng)的設(shè)計與開發(fā)
更新時間:2007年03月07日 00:00:00 作者:
正在看的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ù)庫提供并行查詢選項,允許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ò)展,因為會影響數(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)用所訪問的對象放在速度快的磁盤上。
系統(tǒng)硬件的選擇與使用
與數(shù)據(jù)庫系統(tǒng)密切相關(guān)的硬件主要有CPU、內(nèi)存、集群、存儲設(shè)備等,這里不對集群進(jìn)行討論。
1、CPU
CPU的數(shù)目和速度直接影響數(shù)據(jù)庫操作的速度,Oracle數(shù)據(jù)庫提供并行查詢選項,允許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ò)展,因為會影響數(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)用所訪問的對象放在速度快的磁盤上。
相關(guān)文章
oracle創(chuàng)建一個數(shù)據(jù)庫三步走
這篇文章主要介紹了oracle如何創(chuàng)建數(shù)據(jù)庫和用戶,以及每一步所涉及到的代碼,需要的朋友可以參考下2015-08-08Oracle導(dǎo)dmp出現(xiàn)文件ORA-12154: TNS: 無法解析指定的連接標(biāo)識符問題的解決方案
這篇文章主要介紹了Oracle導(dǎo)dmp出現(xiàn)文件ORA-12154: TNS: 無法解析指定的連接標(biāo)識符問題的解決方案,需要的朋友可以參考下2017-03-03Oracle將查詢的結(jié)果放入一張自定義表中并再查詢數(shù)據(jù)
可以將查詢的結(jié)果放入到一張自定義表中,同時可以再從這個自定義的表中查詢數(shù)據(jù),詳細(xì)的sql如下,感興趣的朋友不要錯過2014-08-08使用Navicat Premium連接Oracle的方法步驟
這篇文章主要介紹了使用Navicat Premium連接Oracle的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03解決The?Network?Adapter?could?not?establish?the?conn問題
這篇文章主要介紹了解決The?Network?Adapter?could?not?establish?the?conn問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02