




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、傳播優(yōu)秀Word版文檔 ,希望對(duì)您有幫助,可雙擊去除!OLAP and OLTPOLTP (在線事務(wù)處理系統(tǒng))OLAP (在線分析系統(tǒng))對(duì)于一個(gè)olap系統(tǒng),大型的查詢每天做幾次,沒有必要將大量的數(shù)據(jù)緩存到內(nèi)存里,完全沒有必要,所以一般buffer hit都比較低對(duì)于一個(gè)olap系統(tǒng),內(nèi)存優(yōu)化余地不大,增加cpu速度和磁盤io速度才是最直接的提高性能的方式。oltp系統(tǒng)的用戶并發(fā)數(shù)很多,而且多是小的操作,數(shù)據(jù)庫側(cè)重于對(duì)用戶操作的快速響應(yīng),這是對(duì)數(shù)據(jù)庫最重要的性能要求。對(duì)于一個(gè)oltp系統(tǒng)來說,數(shù)據(jù)庫內(nèi)存設(shè)計(jì)顯得很重要,如果數(shù)據(jù)都可以在內(nèi)存處理,性能無疑會(huì)提高很多。oltp系統(tǒng)是一個(gè)數(shù)據(jù)塊變化非
2、常頻繁,sql語句提交非常頻繁的系統(tǒng)。對(duì)于數(shù)據(jù)塊來說,應(yīng)盡可能讓數(shù)據(jù)塊保存在內(nèi)存中;對(duì)于sql來說,應(yīng)盡可能使用綁定變量來達(dá)到sql的重用,減少物理io和反復(fù)的sql解析。oltp熱快問題:當(dāng)一個(gè)塊被多個(gè)用戶同時(shí)讀取的時(shí)候,oracle為了維護(hù)數(shù)據(jù)的一致性,需要使用一種稱為latch的東西來串行化用戶的操作。當(dāng)一個(gè)用戶獲得了這個(gè)latch之后,其他的用戶只能被迫等待,獲取這個(gè)數(shù)據(jù)塊的用戶越多,等待就越明顯,這就造成了熱快問題。這種熱快可能是數(shù)據(jù)塊也可能是回滾段塊。對(duì)于數(shù)據(jù)塊來講通常是數(shù)據(jù)塊上的數(shù)據(jù)分布不均導(dǎo)致,如果是索引的數(shù)據(jù)塊,可以考慮建反向索引來達(dá)到重新分布數(shù)據(jù)的目的;對(duì)于回滾段數(shù)據(jù)塊,可
3、以適當(dāng)增加幾個(gè)回滾段來避免爭用。SGA系統(tǒng)全局區(qū),是oracle用來為實(shí)例存儲(chǔ)數(shù)據(jù)和控制信息的共享內(nèi)存區(qū)。在實(shí)例啟動(dòng)時(shí)分配,關(guān)閉時(shí)釋放。數(shù)據(jù)庫緩沖區(qū)高速緩存(buffer cache):保存了最近使用過的數(shù)據(jù)塊。最近最多使用算法(most-recently-used)共享池:存儲(chǔ)共享內(nèi)存結(jié)構(gòu)的區(qū)域。如library cache中的sql區(qū),以及數(shù)據(jù)字典的內(nèi)部信息library cache:SQL 和PL SQL 的文本,執(zhí)行計(jì)劃,編譯數(shù)data dictionary cache:oracle數(shù)據(jù)字典包含一組表和視圖,oracle將他們作為數(shù)據(jù)庫的引用,在其中存儲(chǔ)了與數(shù)據(jù)庫的邏輯和物理結(jié)構(gòu)相關(guān)的
4、信息用戶信息;如權(quán)限等為數(shù)據(jù)庫表定義的完整性約束數(shù)據(jù)庫表中所有列的名稱以及數(shù)據(jù)類型為模式對(duì)象分配空間及其使用情況的信息PGA包含oracle服務(wù)器進(jìn)程的數(shù)據(jù)和控制信息的內(nèi)存區(qū)域堆棧區(qū): 存儲(chǔ)會(huì)話的變量、數(shù)組等的內(nèi)存空間(堆棧區(qū)保存變量信息)會(huì)話區(qū):如果不是MTS服務(wù)器,會(huì)話信息會(huì)保持在PGA中,如過是MTS服務(wù)器,會(huì)話信息保持在SGA中(會(huì)話區(qū)保存著用戶的權(quán)限等重要信息)排序區(qū):游標(biāo)區(qū):當(dāng)運(yùn)行使用游標(biāo)的語句時(shí),Oracle數(shù)據(jù)庫系統(tǒng)會(huì)在程序緩存區(qū)中間為其分配一塊區(qū)域。這塊區(qū)域就叫做游標(biāo)區(qū)。一般來說,采用游標(biāo)的語句要比其他語句的執(zhí)行效率低一點(diǎn)。游標(biāo)區(qū)是一個(gè)動(dòng)態(tài)的區(qū)域,在游標(biāo)打開時(shí)創(chuàng)建,關(guān)閉時(shí)釋放
5、。故在數(shù)據(jù)庫開發(fā)時(shí),不要頻繁的打開和關(guān)閉游標(biāo)可以提高游標(biāo)操作的效率,改善數(shù)據(jù)庫的性能。例如,當(dāng)一個(gè)用戶連接數(shù)據(jù)庫并調(diào)用SQL語句時(shí),這條SQL語句對(duì)應(yīng)的游標(biāo)就將在PGA中創(chuàng)建一個(gè)運(yùn)行時(shí)區(qū)域,注意,這個(gè)區(qū)域是私有的,只針對(duì)調(diào)用SQL的這個(gè)用戶進(jìn)程。PGA就是所有服務(wù)器進(jìn)程的邏輯集合。因此PGA和SGA有著質(zhì)的不同。SGA用于在進(jìn)程間共享信息,PGA則用于信息私有化。PGA的大小直接影響了性能,尤其針對(duì)會(huì)導(dǎo)致排序的SQL查詢。以下幾種情況需要提供足夠的PGA:導(dǎo)致排序的操作如 ORDER BY、GROUP BY、 ROLLUP等操作哈希連接位圖合并位圖創(chuàng)建批量數(shù)據(jù)裝載兩個(gè)PGA建議性能視圖:V$P
6、GA_TARGET_ADVICE和V$PGA_TARGET_ADVICE_HISTOGRAM當(dāng)用戶需要對(duì)某些數(shù)據(jù)進(jìn)行排序時(shí),數(shù)據(jù)庫是如何處理的呢?首先,數(shù)據(jù)庫系統(tǒng)會(huì)將需要排序的數(shù)據(jù)保存到PGA程序緩存區(qū)中的一個(gè)排序區(qū)內(nèi)。然后再在這個(gè)排序區(qū)內(nèi)對(duì)這些數(shù)據(jù)進(jìn)行排序。如需要排序的數(shù)據(jù)有2M,那么排序區(qū)內(nèi)必須至少要有2M的空間來容納這些數(shù)據(jù)。然后排序過程中又需要有2M的空間來保存排序后的數(shù)據(jù)。由于系統(tǒng)從內(nèi)存中讀取數(shù)據(jù)比從硬盤中讀取數(shù)據(jù)的速度要快幾千倍,如果這個(gè)排序的操作都能夠在內(nèi)存中完成,顯然這是很理想的。設(shè)置合理的PGA_aggregate_target的值來調(diào)整排序區(qū)的大小檢查點(diǎn)為什么要用檢查點(diǎn)?(
7、因?yàn)樗袑?duì)數(shù)據(jù)的修改都是在塊緩沖區(qū)內(nèi)完成的,所以并非所有的修改都會(huì)反映到磁盤的數(shù)據(jù)塊上。而緩存又是按照LRU算法實(shí)現(xiàn)的,如果某個(gè)緩沖區(qū)一直被修改,那么他將一直被標(biāo)記為最近使用,處于LRU列表的頂端,不會(huì)被DBWR寫回磁盤。)檢查點(diǎn)進(jìn)程確保臟數(shù)據(jù)能夠最終被寫回磁盤。oralce使用ckpt或者lgwr進(jìn)程來引發(fā)檢查點(diǎn)。檢查點(diǎn)通過定期將臟緩沖強(qiáng)制寫回的手段來確保這些緩沖區(qū)被寫回磁盤。但是并不是說檢查點(diǎn)期間其他工作都要停止。日志切換的時(shí)候會(huì)自動(dòng)觸發(fā)檢查點(diǎn)。經(jīng)常執(zhí)行檢查點(diǎn)可以減少系統(tǒng)故障恢復(fù)時(shí)間。兩種檢查點(diǎn)運(yùn)行方式:快速檢查點(diǎn)、標(biāo)準(zhǔn)檢查點(diǎn)標(biāo)準(zhǔn)檢查點(diǎn):DBWR進(jìn)程只是在每次激活的時(shí)候?qū)懟厣倭康木彌_區(qū),執(zhí)
8、行時(shí)間稍長,但是對(duì)系統(tǒng)影響小??焖贆z查點(diǎn):DBWR進(jìn)程每次激活時(shí)寫回大量的緩沖區(qū),系統(tǒng)運(yùn)行更快,IO效率高,但是對(duì)系統(tǒng)的性能影響較大。MTTRFAST_START_MTTR_TARGET中的mttr就是mean time to recovery,定義數(shù)據(jù)庫進(jìn)行crash恢復(fù)的時(shí)間,單位為秒。FAST_START_MTTR_TARGET=0啟用自動(dòng)調(diào)整的檢查點(diǎn)它不直接影響checkpoint事件,而是當(dāng)內(nèi)存中臟數(shù)據(jù)需要恢復(fù)時(shí)間estimated_mttr達(dá)到fast_start_mttr_target時(shí),才觸發(fā)checkpoint。如何定義FAST_START_MTTR_TARGET參數(shù)值可查看
9、V$mttr_target_advice試圖的建議。TTR 顧問工具能夠統(tǒng)計(jì) MTTR 造成的額外的物理寫入操作,從而協(xié)助用戶評(píng)估不同 MTTR 設(shè)置對(duì)系統(tǒng)性能的影響。MTTR 顧問工具啟用,且系統(tǒng)在正常負(fù)載下運(yùn)行一段時(shí)間后,用戶可以查詢 V$MTTR_TARGET_ADVICE 視圖,獲得其他 MTTR 設(shè)置與當(dāng)前 MTTR 設(shè)置下數(shù)據(jù)庫緩存寫入操作的比率后臺(tái)進(jìn)程DBWR負(fù)責(zé)將臟數(shù)據(jù)塊從數(shù)據(jù)塊緩存(database block buffer)寫入磁盤。當(dāng)一個(gè)事務(wù)修改數(shù)據(jù)塊中的數(shù)據(jù)后,不需要將數(shù)據(jù)塊立即寫回磁盤。DBWR通常定時(shí)寫回?cái)?shù)據(jù),除非數(shù)據(jù)緩沖區(qū)需要清空。數(shù)據(jù)寫回時(shí),采用最近最少使用(l
10、east-recently-used)的原則DBWR觸發(fā):出現(xiàn)檢查點(diǎn)臟數(shù)據(jù)緩沖區(qū)達(dá)到閥值沒有空閑緩沖區(qū)表空間offline狀態(tài)表空間read only狀態(tài)對(duì)表空間執(zhí)行begin backup對(duì)表執(zhí)行drop或者truncate出現(xiàn)超時(shí)執(zhí)行RAC ping請(qǐng)求后臺(tái)進(jìn)程LGWR負(fù)責(zé)將日志緩沖區(qū)中的數(shù)據(jù)寫入到redo log。LGWR觸發(fā):commit1/3滿有1MB的redo每3秒DBWR寫之前后臺(tái)進(jìn)程PMON負(fù)責(zé)監(jiān)視數(shù)據(jù)塊的處理情況,并負(fù)責(zé)清除死掉的進(jìn)程。還負(fù)責(zé)重啟失敗的調(diào)度進(jìn)程(dispatcher process)回退事務(wù)處理釋放鎖和其他資源后臺(tái)進(jìn)程SMON負(fù)責(zé)在實(shí)例啟動(dòng)時(shí)恢復(fù)實(shí)例、前滾日志
11、中的修改回退未提交的事務(wù)回收臨時(shí)空間還可以清除數(shù)據(jù)塊中的碎片(通過合并空閑區(qū)間的方式)打開數(shù)據(jù)庫供用戶訪問后臺(tái)進(jìn)程ckpt負(fù)責(zé)向DBWR進(jìn)程發(fā)送信號(hào),要求執(zhí)行一次檢查點(diǎn),并更新數(shù)據(jù)塊的所有數(shù)據(jù)文件的標(biāo)頭和控制文件。檢查點(diǎn):是由DBWR進(jìn)程將所有修改過的數(shù)據(jù)緩沖區(qū)寫回?cái)?shù)據(jù)文件,是可選的進(jìn)程,如果沒有,則由LGWR代替后臺(tái)進(jìn)程ARCHn負(fù)責(zé)將在線重做日志復(fù)制到歸檔存儲(chǔ)器。系統(tǒng)必須是歸檔模式,進(jìn)程最多10個(gè)表連接- NESTED LOOP對(duì)于被連接的數(shù)據(jù)子集較小的情況,嵌套循環(huán)連接是個(gè)較好的選擇。在嵌套循環(huán)中,內(nèi)表被外表驅(qū)動(dòng),外表返回的每一行都要在內(nèi)表中檢索找到與它匹配的行,因此整個(gè)查詢返回的結(jié)果集
12、不能太大(大于1 萬不適合)要把返回子集較小表的作為外表(CBO 默認(rèn)外表是驅(qū)動(dòng)表),而且在內(nèi)表的連接字段上一定要有索引。Nested loop一般用在連接的表中有索引,并且索引選擇性較好的時(shí)候.USE_NL(table_name1 table_name2)表連接- HASH JOIN散列連接是CBO 做大數(shù)據(jù)集連接時(shí)的常用方式優(yōu)化器使用兩個(gè)表中較小的表(或數(shù)據(jù)源)利用連接鍵在內(nèi)存中建立散列表,然后掃描較大的表并探測(cè)散列表,找出與散列表匹配的行。這種方式適用于較小的表完全可以放于內(nèi)存中的情況,這樣總成本就是訪問兩個(gè)表的成本之和。但是在表很大的情況下并不能完全放入內(nèi)存,這時(shí)優(yōu)化器會(huì)將它分割成若干
13、不同的分區(qū),不能放入內(nèi)存的部分就把該分區(qū)寫入磁盤的臨時(shí)段,此時(shí)要有較大的臨時(shí)段從而盡量提高I/O 的性能。USE_HASH(table_name1 table_name2)表連接- SORT MERGE JOIN通常情況下散列連接的效果都比排序合并連接要好,然而如果行源已經(jīng)被排過序,在執(zhí)行排序合并連接時(shí)不需要再排序了,這時(shí)排序合并連接的性能會(huì)優(yōu)于散列連接。Sort Merge join 用在沒有索引,并且數(shù)據(jù)已經(jīng)排序的情況.USE_MERGE(table_name1 table_name2)表連接工作方式區(qū)別三種連接工作方式比較:Nested loops 工作方式是從一張表中讀取數(shù)據(jù),訪問另一
14、張表(通常是索引)來做匹配,nested loops適用的場合是當(dāng)一個(gè)關(guān)聯(lián)表比較小的時(shí)候,效率會(huì)更高。Hash join的工作方式是將一個(gè)表(通常是小一點(diǎn)的那個(gè)表)做hash運(yùn)算,將列數(shù)據(jù)存儲(chǔ)到hash列表中,從另一個(gè)表中抽取記錄,做hash運(yùn)算,到hash 列表中找到相應(yīng)的值,做匹配。Merge Join 是先將關(guān)聯(lián)表的關(guān)聯(lián)列各自做排序,然后從各自的排序表中抽取數(shù)據(jù),到另一個(gè)排序表中做匹配,因?yàn)閙erge join需要做更多的排序,所以消耗的資源更多。 通常來講,能夠使用merge join的地方,hash join都可以發(fā)揮更好的性能。CR Block(consistent read) b
15、locks 就是讀一致性塊ORACLE在三種條件下需要構(gòu)造CR塊1)查詢時(shí)刻的SCN大于數(shù)據(jù)塊的COMMIT SCN,即SQL 游標(biāo)被打開時(shí)的SCN大于數(shù)據(jù)庫上記錄的SCN。2)數(shù)據(jù)塊上存在LOCK3)閃回查詢。RDBA(Tablespace relative database block address)RDBA是相對(duì)數(shù)據(jù)塊地址,是數(shù)據(jù)字典(表空間及一些對(duì)象定義)所在塊的地址。當(dāng)我們想要查找某個(gè)數(shù)據(jù)的時(shí)候,發(fā)現(xiàn)這個(gè)數(shù)據(jù)塊的版本比我們要查找的要新,那么我們只能從UNDO中去查找這個(gè)數(shù)據(jù)的前映像(PRE IMAGE),在回滾段中找到這個(gè)數(shù)據(jù)的前映像后,把前映像和CURRENT的數(shù)據(jù)塊合并,就形成
16、一個(gè)CR BLOCK,這樣,通過查詢CR BLOCK就可以得到一致性的數(shù)據(jù)了。這個(gè)CR BLOCK的生成不是在PGA里進(jìn)行的,而是要在DB CACHE里申請(qǐng)一個(gè)數(shù)據(jù)塊,然后生成CR BLOCK。這個(gè)CR BLOCK創(chuàng)建后,如果下一回還要訪問這個(gè)版本的數(shù)據(jù)塊,那么就不需要?jiǎng)?chuàng)建新的CR BLOCK,而直接可以使用以前創(chuàng)建的CR BLOCK了。每創(chuàng)建一個(gè)CR BLOCK,CR BLOCKS CREATED計(jì)數(shù)器就會(huì)增加1。由于CR BLOCK和CURRENT BLOCK的RDBA都是相同的,因此它們會(huì)被放到相同的HASH鏈上。因此如果某些BLOCK的CR BLOCK的版本過多,也會(huì)導(dǎo)致BUFFER
17、CACHE CHAINS閂鎖競爭加劇。如果在生成CR BLOCK的過程中,發(fā)現(xiàn)UNDO中的PRE IMAGE由于提交的時(shí)間比較長,已經(jīng)被覆蓋,那么,就會(huì)出現(xiàn)著名的ORA-1555。如果單位時(shí)間內(nèi)CR BLOCKS CREATED較大,那么應(yīng)該檢查系統(tǒng)的CPU資源是否出現(xiàn)瓶頸,另外要注意檢查BUFFER CACHE相關(guān)的閂鎖,是否存在競爭。索引oracle的標(biāo)準(zhǔn)索引結(jié)構(gòu)是Btree結(jié)構(gòu),一個(gè)Btree結(jié)構(gòu)由三種block組成根塊(root block):在Btree里有且只有一個(gè)block,所有訪問索引都從這開始,root block下有很多child blocks。分支塊(Branch blo
18、cks):這是中間層,branch block是沒有什么限制的,它是隨著leaf block的增加而增加的,branch block一般是4層,如果多于4層,就影響性能了。在我們刪除行時(shí),branch block是不被刪除的。葉塊(leaf block):葉塊是最底層,上面存儲(chǔ)著索引條目和rowid索引和表數(shù)據(jù)是級(jí)聯(lián)關(guān)系的,當(dāng)刪除表數(shù)據(jù)的時(shí)候,索引條目也會(huì)被自動(dòng)刪除,這樣在index leaf block就會(huì)產(chǎn)生碎片,這也就是在OLTP系統(tǒng)上有大量更新的表上不建議創(chuàng)建大量的索引,很影響性能有的人說刪除過的索引條目空間不會(huì)被再用,因?yàn)樵趹?yīng)用中不會(huì)再有insert相同的數(shù)據(jù)。其實(shí)這個(gè)說法不完全對(duì)的
19、,除了半空葉塊外,其他的刪除的索引空間是可被再利用的。索引建立的原則1、表的主鍵、外鍵必須有索引;2、數(shù)據(jù)量超過300的表應(yīng)該有索引;3、經(jīng)常與其他表進(jìn)行連接的表,在連接字段上應(yīng)該建立索引;4、經(jīng)常出現(xiàn)在Where子句中的字段,特別是大表的字段,應(yīng)該建立索引;5、索引應(yīng)該建在選擇性高的字段上;6、索引應(yīng)該建在小字段上,對(duì)于大的文本字段甚至超長字段,不要建索引;7、復(fù)合索引的建立需要進(jìn)行仔細(xì)分析;盡量考慮用單字段索引代替:A、正確選擇復(fù)合索引中的主列字段,一般是選擇性較好的字段;B、復(fù)合索引的幾個(gè)字段是否經(jīng)常同時(shí)以AND方式出現(xiàn)在Where子句中?單字段查詢是否極少甚至沒有?如果是,則可以建立復(fù)
20、合索引;否則考慮單字段索引;C、如果復(fù)合索引中包含的字段經(jīng)常單獨(dú)出現(xiàn)在Where子句中,則分解為多個(gè)單字段索引;D、如果復(fù)合索引所包含的字段超過3個(gè),那么仔細(xì)考慮其必要性,考慮減少復(fù)合的字段;E、如果既有單字段索引,又有這幾個(gè)字段上的復(fù)合索引,一般可以刪除復(fù)合索引;8、頻繁進(jìn)行數(shù)據(jù)操作的表,不要建立太多的索引;9、刪除無用的索引,避免對(duì)執(zhí)行計(jì)劃造成負(fù)面影響;索引的集群因子就是通過一個(gè)索引訪問一個(gè)表需要掃描多少個(gè)數(shù)據(jù)塊。計(jì)算方法:1、掃描一個(gè)索引2、比較某行的rowid和前一行的rowid,如果這兩個(gè)rowid不屬于同一個(gè)數(shù)據(jù)塊,那么集群因子+13、整個(gè)索引掃描結(jié)束就得到集群因子數(shù)它反映的是索引
21、掃描可能會(huì)帶來的I/O開銷情況。如果集群因子接近表存儲(chǔ)的塊數(shù),說明這張表是按照索引的順序存儲(chǔ)的。如果集群因子接近行的數(shù)量,那么說明這張表不是按照索引字段順序存儲(chǔ)的。在計(jì)算索引訪問成本時(shí),集群因子乘以選擇性參數(shù)就是訪問的開銷如果這個(gè)統(tǒng)計(jì)數(shù)據(jù)不能反映出索引的真實(shí)情況,那么可能會(huì)造成優(yōu)化器錯(cuò)誤的選擇執(zhí)行計(jì)劃。另外如果某張表上的大多數(shù)訪問是按照某個(gè)索引做索引掃描,那么將該表的數(shù)據(jù)按照索引的字段重新組織,可以提高表的訪問性能死鎖死鎖處理是oracle鎖處理機(jī)制中的一個(gè)亮點(diǎn)。一般來說死鎖是難以避免的,除非在應(yīng)用訪問的時(shí)候做了嚴(yán)格的定義,對(duì)事務(wù)訪問的數(shù)據(jù)源進(jìn)行分級(jí),按照級(jí)別訪問。由于在應(yīng)用開發(fā)中避免死鎖十分
22、困難,索引絕大多數(shù)應(yīng)用都是依靠oracle的死鎖處理機(jī)制來處理死鎖。oracle會(huì)自動(dòng)進(jìn)行死鎖檢測(cè),一旦發(fā)現(xiàn)自動(dòng)解開。應(yīng)用程序可能碰到一個(gè)ora 60的錯(cuò)誤,可能就是死鎖檢測(cè)機(jī)制起作用了。在rac環(huán)境下,要做全局的死鎖檢測(cè),由LMD進(jìn)程負(fù)責(zé)死鎖檢測(cè)。LMD進(jìn)程檢測(cè)死鎖的周期由參數(shù)_lm_dd_interval確定,這個(gè)值默認(rèn)是60sDLD(死鎖檢測(cè))的時(shí)候需要持有parent enqueue hash chains閂鎖,因?yàn)镈LD需要對(duì)每個(gè)資源進(jìn)行一次檢查,查找那些從上回檢查過后狀態(tài)一直沒有變化的資源,才可能發(fā)現(xiàn)那些出現(xiàn)死鎖的資源。由于資源的數(shù)量問題,可能導(dǎo)致檢查的開銷比較大。出現(xiàn)系統(tǒng)hang
23、住的情況也是可能的。這時(shí)候解決方法是關(guān)閉轉(zhuǎn)儲(chǔ)?;貪L段oracle使用回滾段的特點(diǎn):一個(gè)事務(wù)只使用一個(gè)回滾段來記錄所有的回滾記錄多個(gè)事務(wù)可以寫入相同的擴(kuò)展擴(kuò)展被循環(huán)使用,任何一個(gè)擴(kuò)展都不會(huì)被跳過如果不能使用下一個(gè)擴(kuò)展,oracle會(huì)分配一個(gè)新的擴(kuò)展,并插入這個(gè)循環(huán)oracle不會(huì)使用被尾部占據(jù)的擴(kuò)展oracle根據(jù)如下原則來選擇一個(gè)回滾段:oracle會(huì)選擇當(dāng)前事務(wù)數(shù)最少的回滾段如果有兩個(gè)以上的回滾段內(nèi)當(dāng)前有相同的事務(wù)數(shù),那么oracle會(huì)根據(jù)上一個(gè)事務(wù)使用的回滾段號(hào),選擇比這個(gè)回滾段號(hào)大的下一個(gè)順位的回滾段。當(dāng)前2,1和4待定,那么4被選擇。Db_name對(duì)一個(gè)數(shù)據(jù)庫(Oracle datab
24、ase)的唯一標(biāo)識(shí)。這種表示對(duì)于單個(gè)數(shù)據(jù)庫是足夠的,但是隨著由多個(gè)數(shù)據(jù)庫構(gòu)成的分布式數(shù)據(jù)庫的普及,這種命令數(shù)據(jù)庫的方法給數(shù)據(jù)庫的管理造成一定的負(fù)擔(dān),因?yàn)楦鱾€(gè)數(shù)據(jù)庫的名字可能一樣,造成管理上的混亂。為了解決這種情況,引入了Db_domain參數(shù),這樣在數(shù)據(jù)庫的標(biāo)識(shí)是由Db_name和Db_domain兩個(gè)參數(shù)共同決定的,避免了因?yàn)閿?shù)據(jù)庫重名而造成管理上的混亂。這類似于互連網(wǎng)上的機(jī)器名的管理。我們將Db_name和Db_domain兩個(gè)參數(shù)用.連接起來,表示一個(gè)數(shù)據(jù)庫,并將該數(shù)據(jù)庫的名稱稱為Global_name,即它擴(kuò)展了Db_name。Db_name參數(shù)只能由字母、數(shù)字、_、#、$組成,而且最
25、多8個(gè)字符。查看方式:show parameter db_name;Global_name對(duì)一個(gè)數(shù)據(jù)庫(Oracle database)的唯一標(biāo)識(shí),oracle建議用此種方法命令數(shù)據(jù)庫。該值是在創(chuàng)建數(shù)據(jù)庫是決定的,缺省值為Db_name. Db_domain。在以后對(duì)參數(shù)文件中Db_name與Db_domain參數(shù)的任何修改不影響Global_name的值,如果要修改Global_name,只能用ALTER DATABASERENAME GLOBAL_NAME TO db_name.db_domain。查看方式:showparameter global_name;Db_domain定義一個(gè)數(shù)據(jù)
26、庫所在的域,域只是為了更好的管理分布式oracle系統(tǒng)。查看方式:show parameter db_domain;Service_name該參數(shù)是oracle8i新引進(jìn)的。在8i以前,我們用SID來表示標(biāo)識(shí)數(shù)據(jù)庫的一個(gè)實(shí)例,但是在Oracle的并行環(huán)境中,一個(gè)數(shù)據(jù)庫對(duì)應(yīng)多個(gè)實(shí)例,這樣就需要多個(gè)網(wǎng)絡(luò)服務(wù)名,設(shè)置繁瑣。為了方便并行環(huán)境中的設(shè)置,引進(jìn)了Service_name參數(shù),該參數(shù)對(duì)應(yīng)一個(gè)數(shù)據(jù)庫,而不是一個(gè)實(shí)例,而且該參數(shù)有許多其它的好處。該參數(shù)的缺省值為Db_name. Db_domain,即等于Global_name。一個(gè)數(shù)據(jù)庫可以對(duì)應(yīng)多個(gè)Service_name,以便實(shí)現(xiàn)更靈活的配置。
27、該參數(shù)與SID沒有直接關(guān)系,即不必Service name 必須與SID一樣。查看方式:show parameter service_name;監(jiān)聽參數(shù)o LISTENER 指出一個(gè)監(jiān)聽器定義的起始點(diǎn)。它實(shí)際上是正被定義的當(dāng)前監(jiān)聽器的名稱。默認(rèn)的名稱是LISTENER。o DESCRIPTION 描述每個(gè)監(jiān)聽位置o ADDRESS_LIST 含有與監(jiān)聽器正在監(jiān)聽的那些位置有關(guān)的地址信息o PROTOCOL 指定用于本監(jiān)聽位置的協(xié)議o HOST 保存監(jiān)聽器所駐留在的那臺(tái)計(jì)算機(jī)的名稱o PORT 含有監(jiān)聽器正在上面監(jiān)聽的地址o SID_LIST_LISTENER 定義配置監(jiān)聽器所針對(duì)的ORACLE
28、服務(wù)的列表o GLOBAL_DBNAME 標(biāo)識(shí)全局?jǐn)?shù)據(jù)庫名稱。本項(xiàng)應(yīng)該與當(dāng)前Oracle服務(wù)的init.ora文件中的SERVICE_NAMES項(xiàng)一致o ORACLE_HOME 給出服務(wù)器上Oracle可執(zhí)行程序的位置o SID_NAME 含有用于本Oracle實(shí)例的Oracle SID的名稱o SID_LIST_LISTENER 定義配置監(jiān)聽器所針對(duì)的ORACLE服務(wù)的列表o Lsnrctl命令用來管理Oracle監(jiān)聽器,是一個(gè)命令行界面。想調(diào)用這個(gè)命令行工具,在命令行鍵入lsnrctl即可??梢栽贚SNRCTL提示符下鍵入help來顯示這些命令的一份清單。o Services 列舉出服務(wù)的
29、一個(gè)匯總表及為每個(gè)協(xié)議服務(wù)處理程序所建立和拒絕的連接信息個(gè)數(shù)o Start listener 啟動(dòng)指定的監(jiān)聽器o Status listener 顯示指定監(jiān)聽器的狀態(tài)o Stop listener 關(guān)閉指定的監(jiān)聽器o Trace 打開監(jiān)聽器的跟蹤特性0-16o Version 顯示Oracle Net軟件與協(xié)議適配器的版本o Change_password 允許用戶修改關(guān)閉監(jiān)聽器所需要的密碼o Reload 重新讀取listener.ora文件,但不關(guān)閉監(jiān)聽器。如果該文件發(fā)生了變化,重新刷新監(jiān)聽器。o Save_config 當(dāng)從lsnrctl工具中對(duì)listener.ora文件進(jìn)行了修改時(shí),
30、復(fù)制一個(gè)叫做listener.bak的listener.ora文件o Exit 退出lsnrctl實(shí)用工具o Quit 執(zhí)行和exit相同的功能Net service name網(wǎng)絡(luò)服務(wù)名,又可以稱為數(shù)據(jù)庫別名(database alias)。是客戶端程序訪問數(shù)據(jù)庫時(shí)所需要,屏蔽了客戶端如何連接到服務(wù)器端的細(xì)節(jié),實(shí)現(xiàn)了數(shù)據(jù)庫的位置透明的特性。查看方式:show parameter Net service name;recrusive callsrecrusive calls表示對(duì)recrusive SQL的調(diào)用次數(shù),這里的recrusive SQL可能專門是指對(duì)system表空間里的對(duì)象所做的遞
31、歸SQL。當(dāng)數(shù)據(jù)字典信息已經(jīng)加載到dictionary cache以后,就不需要對(duì)硬盤上的system表空間做操作了,直接內(nèi)存操作。所以就不算到recrusive calls了行遷移和行連接行連接是指一個(gè)行存儲(chǔ)在多個(gè)塊中的情況,因?yàn)橐粋€(gè)該行的長度超過了一個(gè)塊的可用空間大小。行遷移是指一個(gè)數(shù)據(jù)行不適合放入當(dāng)前塊而被重新定位到另一個(gè)塊,但在原始?jí)K中保留一個(gè)指針,原始?jí)K中的指針是必需的兩者之間的區(qū)別: 行連接是指一個(gè)行存儲(chǔ)在多個(gè)塊中的情況,因?yàn)橐粋€(gè)該行的長度超過了一個(gè)塊的可用空間大小。行遷移是指一個(gè)數(shù)據(jù)行不適合放入當(dāng)前塊而被重新定位到另一個(gè)塊,但在原始?jí)K中保留一個(gè)指針,原始?jí)K中的指針是必需的,因?yàn)樗?/p>
32、引的rowid項(xiàng)仍然指向原始位置.行連接通常與行的長度和oracle數(shù)據(jù)庫塊中的大小有關(guān),而行遷移通常是當(dāng)一個(gè)更新操作的長度增加且又要保持該行在同一塊中,而該塊又缺少可用空間時(shí)產(chǎn)生的問題,oracle在決定行連接之前先試圖進(jìn)行行遷移。ROWID存儲(chǔ)了row在數(shù)據(jù)文件中的具體位置:64位編碼的數(shù)據(jù),A-Z, a-z, 0-9, +, 和 /,row在數(shù)據(jù)塊中的存儲(chǔ)方式SELECT ROWID, last_name FROM hr.employees WHERE department_id = 20;比如:OOOOOOFFFBBBBBBRRROOOOOO:data object number, 對(duì)
33、應(yīng)dba_objects.data_object_idFFF:file#, 對(duì)應(yīng)v$datafile.file#BBBBBB:block#RRR:row#Dbms_rowid包SELECT dbms_rowid.rowid_block_number(AAAGFqAABAAAIWEAAA) from dual;具體到特定的物理文件存儲(chǔ)raidRAID 0又稱為Stripe或Striping,它代表了所有RAID級(jí)別中最高的存儲(chǔ)性能。RAID 0提高存儲(chǔ)性能的原理是把連續(xù)的數(shù)據(jù)分散到多個(gè)磁盤上存取,這樣,系統(tǒng)有數(shù)據(jù)請(qǐng)求就可以被多個(gè)磁盤并行的執(zhí)行,每個(gè)磁盤執(zhí)行屬于它自己的那部分?jǐn)?shù)據(jù)請(qǐng)求。這種數(shù)據(jù)上的
34、并行操作可以充分利用總線的帶寬,顯著提高磁盤整體存取性能RAID 1又稱為Mirror或Mirroring,它的宗旨是最大限度的保證用戶數(shù)據(jù)的可用性和可修復(fù)性。 RAID 1的操作方式是把用戶寫入硬盤的數(shù)據(jù)百分之百地自動(dòng)復(fù)制到另外一個(gè)硬盤上。由于對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行百分之百的備份,在所有RAID級(jí)別中,RAID 1提供最高的數(shù)據(jù)安全保障。同樣,由于數(shù)據(jù)的百分之百備份,備份數(shù)據(jù)占了總存儲(chǔ)空間的一半,因而,Mirror的磁盤空間利用率低,存儲(chǔ)成本高。RAID 5 是一種存儲(chǔ)性能、數(shù)據(jù)安全和存儲(chǔ)成本兼顧的存儲(chǔ)解決方案。RAID 5不對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行備份,而是把數(shù)據(jù)和相對(duì)應(yīng)的奇偶校驗(yàn)信息存儲(chǔ)到組成RAID5的各個(gè)磁盤上,并且奇偶校驗(yàn)信息和相對(duì)應(yīng)的數(shù)據(jù)分別存儲(chǔ)于不同的磁盤上。當(dāng)RAID5的一個(gè)磁盤數(shù)據(jù)發(fā)生損壞后,利用剩下的數(shù)據(jù)和相應(yīng)的奇偶校驗(yàn)信息去恢復(fù)被損壞的數(shù)據(jù)。RAID0+1:正如其名字一樣RAID 0+1是RAID 0和RAID 1的組合形式,也稱為RAID 10。RAID 0+1是存儲(chǔ)性能和數(shù)據(jù)安全兼顧的方案。它在提供與RAID 1一樣的數(shù)據(jù)安全
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國絕緣制品市場十三五規(guī)劃與投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國紅木市場競爭格局及發(fā)展趨勢(shì)分析報(bào)告
- 2025-2030年中國精密減速器市場發(fā)展現(xiàn)狀及前景趨勢(shì)分析報(bào)告
- 2025-2030年中國碲行業(yè)運(yùn)行狀況及發(fā)展趨勢(shì)分析報(bào)告
- 2025年遼寧省安全員C證考試(專職安全員)題庫附答案
- 2025-2030年中國皮帶輸送機(jī)市場運(yùn)行狀況及發(fā)展前景分析報(bào)告
- 2025-2030年中國電解銅行業(yè)發(fā)展?jié)摿σ?guī)劃研究報(bào)告
- 重慶郵電大學(xué)《電腦輔助設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 成都信息工程大學(xué)《藝用人體解剖學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 泰山學(xué)院《財(cái)政政策與貨幣政策》2023-2024學(xué)年第二學(xué)期期末試卷
- 小學(xué)思政課建設(shè)實(shí)施方案及措施
- 生物醫(yī)藥行業(yè)市場前景及投資研究報(bào)告:代謝相關(guān)脂肪肝炎(MASHNASH)無藥可治巨大市場需求
- 2024年醫(yī)藥衛(wèi)生考試-靜脈治療知識(shí)筆試參考題庫含答案
- 《輸變電工程三維協(xié)同設(shè)計(jì)規(guī)范》
- 保潔員崗位安全知識(shí)培訓(xùn)
- 第二單元大單元教學(xué)設(shè)計(jì) 2023-2024學(xué)年統(tǒng)編版高中語文必修上冊(cè)
- JTT513-2004 公路工程土工合成材料 土工網(wǎng)
- 2024年高考語文復(fù)習(xí):文言文斷句專項(xiàng)練習(xí)題匯編(含答案解析)
- 中醫(yī)科醫(yī)院感染管理制度(全新版)
- 2023廣東省廣州市一模英語真題及答案
- 屈原【六幕話劇】郭沫若
評(píng)論
0/150
提交評(píng)論