2023年OracleDBA面試題題庫_第1頁
2023年OracleDBA面試題題庫_第2頁
2023年OracleDBA面試題題庫_第3頁
2023年OracleDBA面試題題庫_第4頁
2023年OracleDBA面試題題庫_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

一.SQLtuning類

1:列舉幾種表連接方式

hashjoin/mergejoin/nestloop(clusterjoin)/indexjoin

2:不借助第三方工具,如何查看sql的執(zhí)行計劃

setautoton

explainplansetstatementjd=&item_idfor&sql;

select*fromtable(dbms_xplan.display);

或者:

SQL>EXPLAINPLANFORSELECT*FROMEMP;

SQL>SELECTplan_table_outputFROMTABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE'));

3:如何使用CBO,CBO與RULE的區(qū)別

RuleBasedOptimizer(RBO):基于規(guī)則

CostBasedOptimizer(CBO):基于成本,或者講記錄信息。

在optimizer_mode=choose時,假如表有記錄信息(分區(qū)表外),優(yōu)化器將選擇CBO,否則選

RBOoRBO遵循簡樸的分級方法學(xué),使用15種級別要點,當(dāng)接受到查詢,優(yōu)化器將評估使用

到的要點數(shù)目,然后選擇最佳級別(最少的數(shù)量)的執(zhí)行途徑來運營查詢。

CBO嘗試找到最低成本的訪問數(shù)據(jù)的方法,為了最大的吞吐量或最快的初始響應(yīng)時間,計

算使用不同的執(zhí)行計劃的成本,并選擇成本最低的一個,關(guān)于表的數(shù)據(jù)內(nèi)容的記錄被用于擬

定執(zhí)行計劃。

4:如何定位重要(消耗資源多)的SQL

selectsql__textfromv$sqlwheredisk__reads>1000or(executions>0and

buffer_gets/executions>30000);

5:如何跟蹤某個session的SQL

execdbms_system.set_sql_trace_in__session(sid,serial#/&sql_trace);

selectsid,serial#fromv$sessionwheresid=(selectsidfromv$mystatwhererownum=

1);

execdbms_system.set_ev(&sidz&serial#/&event_10046,&level_12/');

6:SQL調(diào)整最關(guān)注的是什么

查看該SQL的responsetime(dbblockgets/consistentgets/physicalreads/sorts(disk))

7:說說你對索引的結(jié)識(索引的結(jié)構(gòu)、對dml影響、為什么提高查詢性能)

b-treeindex/bitmapindex/functionindex/patitionalindex(local/global)索引通常能提高

select/update/delete的性能,會減少insert的速度

8:使用索引查詢一定能提高查詢的性能嗎?為什么

索引就是為了提高查詢性能而存在的,假如在查詢中索引沒有提高性能,只能說是用

錯了索引,或者講是場合不同

9:綁定變量是什么?綁定變量有什么優(yōu)缺陷?

綁定變量是相對文本變量來講的,所謂文本變量是指在SQL直接書寫查詢條件,這樣的

SQL在不同條件下需要反復(fù)解析,綁定變量是指使用變量來代替直接書寫條件,查詢bind

value在運營時傳遞,然后綁定執(zhí)行。優(yōu)點是減少硬解析,減少CPU的爭用,節(jié)省shared_pool;

缺陷是不能使用histogram,sql優(yōu)化比較困難

10:如何穩(wěn)定(固定)執(zhí)行計劃

query_rewrite_enabled=true

star_transformation__enabled=true

optimizer_features_enable=9.2.0

創(chuàng)建并使用storedoutline

11:和排序相關(guān)的內(nèi)存在8i和9i分別如何調(diào)整,臨時表空

間的作用是什么

8i中sort_area_size/sort_area_retained_size決定了排序所需要的內(nèi)存.假如排序操作

不能在sort_area_size中完畢,就會用到temp表空間

9i中假如workarea_size_policy=auto時,排序在pga內(nèi)進(jìn)行,通常pga_aggregate_target

的1/20可以用來進(jìn)行disksort;假如workarea_size_policy=manual時,排序需要的內(nèi)存由

sort_area__size決定.在執(zhí)行orderby/groupby/distinct/union/createindex/indexrebuild/minus

等操作時,假如在pga或sort_area_size中不能完畢,排序?qū)⒃谂R時表空間進(jìn)行(disksort),

臨時表空間重要作用就是完畢系統(tǒng)中的disksort.

12:存在表T(a,b,c,d),要根據(jù)字段c排序后取第21—30條

記錄顯示,請給出sql

createtablet(anumber(),bnumber。,cnumber。,dnumber());

/

begin

foriin1..300loop

insertintotvalues(mod(i/2)J/2/dbms_random.value(l/300)JA);

endloop;

end;

select*from(selectc.*,rownumasrnfrom(select*fromtorderbycdesc)c)wherern

between21and30;

/

select*from(select*fromtestorderbycdesc)xwhererownum<30

minus

select*from(select*fromtestorderbycdesc)ywhererownum<20orderby3desc

相比之minus性能較差

二.數(shù)據(jù)庫基本概念類

l:pctusedandpctfree表達(dá)什么含義有什么作用

pctused與pctfree控制數(shù)據(jù)塊是否出現(xiàn)在freelist中,pctfree控制數(shù)據(jù)塊中保存用于

update的空間,當(dāng)數(shù)據(jù)塊中的freespace小于pctfree設(shè)立的空間時,該數(shù)據(jù)塊從freelist中去掉,

當(dāng)塊由于dml操作freespace大于pct_used設(shè)立的空間時,該數(shù)據(jù)庫塊將添加在freelist鏈表

中。

2:簡樸描述table/segment/extent/block之間的關(guān)系

table創(chuàng)建時,默認(rèn)創(chuàng)建了一個datasegment,每個datasegment具有minextents指定的

extents數(shù),每個extent據(jù)據(jù)表空間的存儲參數(shù)分派一定數(shù)量的blocks

3:描述tablespace和datafile之間的關(guān)系

一個tablespace可以有一個或多個datafile,每個datafile只能在一個tablespace內(nèi),table

中的數(shù)據(jù),通過hash算法分布在tablespace中的各個datafile中,tablespace是邏輯上的概

念,datable則在物理上儲存了數(shù)據(jù)庫的種種對象。

4:本地管理表空間和字典管理表空間的特點,ASSM有什

么特點

本地管理表空間(LocallyManagedTablespace簡稱LMT):8i以后出現(xiàn)的一種新的表空間的

管理模式,通過位圖來管理表空間的空間使用。

字典管理表空間(Dictionary-ManagedTablespace簡稱DMT)⑻以前涉及以后都還可以使

用的一種表空間管理模式,通過數(shù)據(jù)字典管理表空間的空間使用。

動段空間管理(ASSM):它初次出現(xiàn)在Oracle920里有了ASSM,鏈接列表freelist被位圖所

取代,它是一個二進(jìn)制的數(shù)組,可以迅速有效地管理存儲擴(kuò)展和剩余區(qū)塊(freeblock),因此

可以改善分段存儲本質(zhì),ASSM表空間上創(chuàng)建的段尚有此外一個稱呼喊Bitm叩Managed

Segments(BMB段)。

5:回滾段的作用是什么

事務(wù)回滾:當(dāng)事務(wù)修改表中數(shù)據(jù)的時候,該數(shù)據(jù)修改前的值(即前影像)會存放在回滾段

中,當(dāng)用戶回滾事務(wù)(ROLLBACK)時,ORACLE將會運用回滾段中的數(shù)據(jù)前影像來將修改的數(shù)

據(jù)恢復(fù)到本來的值。

事務(wù)恢復(fù):當(dāng)事務(wù)正在解決的時候,例程失敗,回滾段的信息保存在undo表空間中,

ORACLE將在下次打開數(shù)據(jù)庫時運用回滾來恢復(fù)未提交的數(shù)據(jù)。

讀一致性:當(dāng)一個會話正在修改數(shù)據(jù)時,其他的會話將看不到該會話未提交的修改。當(dāng)

一個語句正在執(zhí)行時,該語句將看不到從該語句開始執(zhí)行后的未提交的修改(語句級讀一致

性).當(dāng)ORACLE執(zhí)行SELECT語句時,ORACLE依照當(dāng)前的系統(tǒng)改變號(SYSTEMCHANGE

NUMBER-SCN)來保證任何前于當(dāng)前SCN的未提交的改變不被該語句解決??梢韵胂螅寒?dāng)一

個長時間的查詢正在執(zhí)行時,若其他會話改變了該查詢要查詢的某個數(shù)據(jù)塊,ORACLE將運

用回滾段的數(shù)據(jù)前影像來構(gòu)造一個讀一致性視圖。

6:日記的作用是什么

記錄數(shù)據(jù)庫事務(wù):最大限度地保證數(shù)據(jù)的一致性與安全性

重做日記文獻(xiàn):含對數(shù)據(jù)庫所做的更改記錄,這樣萬一出現(xiàn)故障可以啟用數(shù)據(jù)恢復(fù),一

個數(shù)據(jù)庫至少需要兩個重做日記文獻(xiàn)

歸檔日記文獻(xiàn):是重做日記文獻(xiàn)的脫機(jī)副本,這些副本也許對于從介質(zhì)失敗中進(jìn)行恢復(fù)

很必要。

7:SGA重要有那些部分,重要作用是什么

SGA:db_cache/shared_pool/large_pool/java_pool

db_cache:數(shù)據(jù)庫緩存(BlockBuffer)對于Oracle數(shù)據(jù)庫的運轉(zhuǎn)和性能起著非常關(guān)鍵的作

用,它占據(jù)Oracle數(shù)據(jù)庫SGA(系統(tǒng)共享內(nèi)存區(qū))的重要部分。Oracle數(shù)據(jù)庫通過使用LRU算

法,將最近訪問的數(shù)據(jù)塊存放到緩存中,從而優(yōu)化對磁盤數(shù)據(jù)的訪問.

shared_pool:共享池的大小對于Oracle性能來說都是很重要的。共享池中保存數(shù)據(jù)字典

高速緩沖和完全解析或編譯的的PL/SQL塊和SQL語句及控制結(jié)構(gòu)

large_pool:使用MTS配置時,由于要在SGA中分派UGA來保持用戶的會話,就是用

Large_pool來保持這個會話內(nèi)存使用RMAN做備份的時候,要使用Large_pool這個內(nèi)存結(jié)構(gòu)

來做磁盤I/O緩存器

java_pool:為javaprocedure預(yù)備的內(nèi)存區(qū)域,假如沒有使用javaproc,java_pool不是必須

8.Oracle系統(tǒng)進(jìn)程重要有哪些,作用是什么

數(shù)據(jù)寫進(jìn)程(dbwr):負(fù)責(zé)將更改的數(shù)據(jù)從數(shù)據(jù)庫緩沖區(qū)高速緩存寫入數(shù)據(jù)文獻(xiàn)

日記寫進(jìn)程(Igwr):將重做日記緩沖區(qū)中的更改寫入在線重做日記文獻(xiàn)

系統(tǒng)監(jiān)控(smon):檢查數(shù)據(jù)庫的一致性如有必要還會在數(shù)據(jù)庫打開時啟動數(shù)據(jù)庫的恢

復(fù)

進(jìn)程監(jiān)控(pmon):負(fù)責(zé)在一個Oracle進(jìn)程失敗時清理資源

檢查點進(jìn)程(chpt):負(fù)責(zé)在每當(dāng)緩沖區(qū)高速緩存中的更改永久地記錄在數(shù)據(jù)庫中時,更新

控制文獻(xiàn)和數(shù)據(jù)文獻(xiàn)中的數(shù)據(jù)庫狀態(tài)信息。

歸檔進(jìn)程(arcn):在每次日記切換時把已滿的日記組進(jìn)行備份或歸檔

作業(yè)調(diào)度器(cjq):負(fù)責(zé)將調(diào)度與執(zhí)行系統(tǒng)中已定義好的job,完畢一些預(yù)定義的工作.

恢復(fù)進(jìn)程(reco):保證分布式事務(wù)的一致性,在分布式事務(wù)中,要么同時commit,要么同時

rollback;

三.備份恢復(fù)類

1:備份如何分類

邏輯備份:exp/imp

物理備份:

1).RMAN備份:fullbackup/incrementalbackup(累積/差異)

2).熱備份:altertablespacebegin/endbackup;

3).冷備份:脫機(jī)備份(databaseshutdown)

2:歸檔是什么含義

關(guān)于歸檔日記:Oracle要將填滿的在線日記文獻(xiàn)組歸檔時,則要建立歸檔日記(archived

redolog)?

其對數(shù)據(jù)庫備份和恢復(fù)有下列用處:數(shù)據(jù)庫后備以及在線和歸檔日記文獻(xiàn),在操作系統(tǒng)

和磁盤故障中可保證所有提交的事物可被恢復(fù)。在數(shù)據(jù)庫打開和正常系統(tǒng)使用下,假如歸檔

日記是永久保存,在線后備可以進(jìn)行和使用。

數(shù)據(jù)庫可運營在兩種不同方式下:NOARCHIVELOG方式或ARCHIVELOG方式.數(shù)據(jù)庫在

NOARCHIVELOG方式下使用時,不能進(jìn)行在線日記的歸檔,假如數(shù)據(jù)庫在ARCHIVELOG方式下

運營,可實行在線日記的歸檔。

3:假如一個表在2023-08-0410:30:00被drop,在有完善

的歸檔和備份的情況下,如何恢復(fù)?

手工拷貝回所有備份的數(shù)據(jù)文獻(xiàn)

startupmount;

sqlalterdatabaserecoverautomaticuntiltime'2023-08-04:10:30:00,;

alterdatabaseopenresetlogs;

4:rman是什么,有何特點?

RMAN(RecoveryManager)是DBA的一個重要工具,用于備份、還原和恢復(fù)oracle數(shù)據(jù)

庫,RMAN可以用來備份和恢復(fù)數(shù)據(jù)庫文獻(xiàn)、歸檔日記、控制文獻(xiàn)、系統(tǒng)參數(shù)文獻(xiàn),也可以用

來執(zhí)行完全或不完全的數(shù)據(jù)庫恢復(fù)。

RMAN有三種不同的用戶接口:COMMANDUNE方式、GUI方式(集成在OEM中的備份

管理器)、API方式(用于集成到第三方的備份軟件中)。

具有如下特點:

1)功能類似物理備份,但比物理備份強(qiáng)大N倍;

2)可以壓縮空塊;

3)可以在塊水平上實現(xiàn)增量;

4)可以把備份的輸出打包成備份集,也可以按固定大小分割備份集;

5)備份與恢復(fù)的過程可以自動管理;

6)可以使用腳本(存在Recoverycatalog中)

7)可以做壞塊監(jiān)測

5:standby的特點

備用數(shù)據(jù)庫(standbydatabase):ORACLE推出的一種高可用性(HIGHAVAILABLE)數(shù)據(jù)庫方

案,在主節(jié)點與備用節(jié)點間通過日記同步來保證數(shù)據(jù)的同步,備用節(jié)點作為主節(jié)點的備份.

可以實現(xiàn)快速切換與劫難性恢復(fù),從920開始,還開始支持物理與邏輯備用服務(wù)器。

9i中的三種數(shù)據(jù)保護(hù)模式分別是:

1)、MAXIMIZEPROTECTION:最大數(shù)據(jù)保護(hù)與無數(shù)據(jù)分歧,LGWR將同時傳送到備用節(jié)

點,在主節(jié)點事務(wù)確認(rèn)之前,備用節(jié)點也必須完全收到日記數(shù)據(jù)。假如網(wǎng)絡(luò)不好,引起LGWR

不能傳送數(shù)據(jù),將引起嚴(yán)重的性能問題,導(dǎo)致主節(jié)點DOWN機(jī)。

2)、MAXIMIZEAVAILABILITY:無數(shù)據(jù)丟失模式,允許數(shù)據(jù)分歧,允許異步傳送。正常

情況下運營在最大保護(hù)模式,在主節(jié)點與備用節(jié)點的網(wǎng)絡(luò)斷開或連接不正常時,自動切換到

最大性能模式,主節(jié)點的操作還是可以繼續(xù)的。在網(wǎng)絡(luò)不好的情況下有較大的性能影響。

3)、MAXIMIZEPERFORMANCE:這種模式應(yīng)當(dāng)可以說是從8i繼承過來的備用服務(wù)器模式,

異步傳送,無數(shù)據(jù)同步檢查,也許丟失數(shù)據(jù),但是能獲得主節(jié)點的最大性能。9i在配置DATA

GUARD的時候默認(rèn)就是MAXIMIZEPERFORMANCE

6:對于一個規(guī)定恢復(fù)時間比較短的系統(tǒng)(數(shù)據(jù)庫50G,天天

歸檔5G),你如何設(shè)計備份策略

rman/每月一號level。每周末/周三level1其它天天level2

四:系統(tǒng)管理類

1.對于一個存在系統(tǒng)性能的系統(tǒng),說出你的診斷解決思緒

1)做statspack收集系統(tǒng)相關(guān)信息

了解系統(tǒng)大體情況/擬定是否存在參數(shù)設(shè)立不合適的地方/查看top5event/查看topsql

2)查v$system_event/v$session_event/v$session_wait

從v$system_event開始,擬定需要什么資源(dbfilesequentialread)等

進(jìn)一步研究v$session_event,擬定等待事件涉及的會話

從v$session_wait擬定具體的資源爭用情況(pl-p3的值:file_id/block_id/blocks等)

3)通過v$sql/v$sqItext/v$sqIarea表擬定disk_reads、(buffejgets/executions)值較大的

SQL

2:列舉幾種診斷10、CPU、性能狀況的方法

top/vmstat

statspack

sql_trace/tkprof

查v$system_event/v$session_event/v$session_wait

查v$sqlarea(disk_reads或buffer_gets/executions較大的SQL)

3:對statspack有何結(jié)識

StapSpack是Oracle公司提供的一個收集數(shù)據(jù)庫運營性能指標(biāo)的軟件包,該軟件包從8i

起,在9i、10g都有顯著的增強(qiáng)。該軟件包的輔助表(存儲相關(guān)參數(shù)與收集的性能指標(biāo)的表)

由最初的25個增長到43個。收集級別參數(shù)由本來的3個(0、5、10)增長到5個(0、5、6、7、

10)通過度析收集的性能指標(biāo),數(shù)據(jù)庫管理員可以具體地了解數(shù)據(jù)庫目前的運營情況,對數(shù)

據(jù)庫實例、等待事件、SQL等進(jìn)行優(yōu)化調(diào)整。運用statspack收集的snapshot,可以記錄制作

數(shù)據(jù)庫的各種性能指標(biāo)的記錄趨勢圖表。

4:假如系統(tǒng)現(xiàn)在需要在一個很大的表上創(chuàng)建一個索引,你

會考慮那些因素,如何做以盡量減小相應(yīng)用的影響

在系統(tǒng)比較空閑時;nologging選項(假如有dataguard則不可以使用nologging)大的

sort_ared_size或pga_aggregate_target較大

5:對raidl+O和raid5有何結(jié)識

RAID10(或稱RAID1+0)與RAID0+1不同,它是用硬盤驅(qū)動器先組成RAID1陣列,然后

在RAID1陣列之間再組成RAID0陣列。RAID10模式同RAID0+1模式同樣具有良好的數(shù)據(jù)

傳輸性能,但卻比RAID0+1具有更高的可靠性。RAID10陣列的實際容量為MXn/2,磁盤

運用率為50%。RAID10也需要至少4個硬盤驅(qū)動器構(gòu)成,因而價格昂貴。RAID10的可靠

性同RAID1同樣,但由于RAID10硬盤驅(qū)動器之間有數(shù)據(jù)分割,因而數(shù)據(jù)傳輸性能優(yōu)良。RAID

5與RAID3很相似,不同之處在于RAID5的奇偶校驗信息也同數(shù)據(jù)同樣被分割保存到所有

的硬盤驅(qū)動器,而不是寫入一個指定的硬盤驅(qū)動器,從而消除了單個奇偶校驗硬盤驅(qū)動器的

瓶頸問題。RAID5磁盤陣列的性能比RAID3有所提高,但仍然需要至少3塊硬盤驅(qū)動器。

其實際容量為MX(n-l),磁盤運用率為(n-l)/n。

五:綜合隨意類

1:你最擅長的是oracle哪部分?

2:喜歡oracle嗎?喜歡上論壇嗎?或者偏好oracle的哪一部分?

3:隨意說說你覺得oracle最故意思的部分或者最困難的部分

4:為什么要選擇做DBA呢?

六Oracle11g比10g多了哪些新特性?

ORACLE11g新特性簡介

1.數(shù)據(jù)庫管理部分

?數(shù)據(jù)庫重演(DatabaseReplay)

這一特性可以捕獲整個數(shù)據(jù)的負(fù)載,并且傳遞到一個從備份或者standby數(shù)據(jù)庫中創(chuàng)建

的測試數(shù)據(jù)庫上,然后重演負(fù)責(zé)以測試系統(tǒng)調(diào)優(yōu)后的效果。

?SQL重演(SQLReplay)

和前一特性類似。但是只是捕獲SQL負(fù)載部分,而不是所有負(fù)載。

?計劃管理(PlanManagement)

這一特性允許你將某一特定語句的查詢計劃固定下來,無論記錄數(shù)據(jù)變化還是數(shù)據(jù)庫版

本變化都不會改變她的查詢計劃。

?自動診斷知識庫(AutomaticDiagnosticRepositoryADR)

當(dāng)Oracle探測到重要錯誤時,會自動創(chuàng)紀(jì)一個事件(incident),并且捕獲到和這一事件

相關(guān)的信息,同時自動進(jìn)行數(shù)據(jù)庫健康檢查并告知DBA,此外,這些信息還可以打包發(fā)送

給Oracle支持團(tuán)隊。

?事件打包服務(wù)(IncidentPackagingService)

假如你需要進(jìn)一步測試或者保存相關(guān)信息,這一特性可以將與某一事件相關(guān)的信息打

包。并且你還可以將打包信息發(fā)給oracle支持團(tuán)隊。

?基于特性打補丁(FeatureBasedPatching)

在打補丁包時,這一特性可以使你很容易區(qū)分出補丁包中的那些特性是你正在使用而必

須打的。公司管理器(EM)使你能訂閱一個基于特性的補丁服務(wù),因此公司管理器可以自動

掃描那些你正在使用的特性有補丁可以打。

?自動SQL優(yōu)化(AutoSQLTuning)

10g的自動優(yōu)化建議器可以將優(yōu)化建議寫在SQLprofile中。而在11g中,你可以讓

oracle自動將能3倍于原有性能的profile應(yīng)用到SQL語句上。性能比較由維護(hù)窗口中一個

新管理任務(wù)來完畢。

?訪問建議器(AccessAdvisor)

11g的訪問建議器可以給出分區(qū)建議,涉及對新的間隔分區(qū)(intervalpart幣oning)的建

議。間隔分區(qū)相稱于范圍分區(qū)(rangepaittioning)的自動化版本,她可以在必要時自動創(chuàng)建

一個相同大小的分區(qū)。范圍分區(qū)和間隔分區(qū)可以同時存在于一張表中,并且范圍分區(qū)可以轉(zhuǎn)

換為間隔分區(qū)。

?自動內(nèi)存優(yōu)化(AutoMemoryTuning)

在9i中,引入了自動PGA優(yōu)化;10g中,又引入了自動SGA優(yōu)化。到了11g,所有內(nèi)

存可以通過只設(shè)定一個參數(shù)來實現(xiàn)全表自動優(yōu)化。你只要告訴oracle有多少內(nèi)存可用,她

就可以自動指定多少內(nèi)存分派給PGA、多少內(nèi)存分派給SGA和多少內(nèi)存分派給操作系統(tǒng)進(jìn)

程。當(dāng)然也可以設(shè)定最大、最小閾值。

?資源管理器(ResourceManager)

11g的資源管理器不僅可以管理CPU,還可以管理10。你可以設(shè)立特定文獻(xiàn)的優(yōu)先級、

文獻(xiàn)類型和ASM磁盤組。

?ADDM

ADDM在10g被引入。11g中,ADDM不僅可以給單個實例建議,還可以對整個RAC(即

數(shù)據(jù)庫級別)給出建議。此外,還可以將一些指示(directive)加入ADDM,使之忽略一些你不

關(guān)心的信息。

?AWR基線(AWRBaselines)

AWR基線得到了擴(kuò)展??烧J(rèn)為一些其他使用到的特性自動創(chuàng)建基線。默認(rèn)會創(chuàng)建周基

線。

2.PLSQL部分

?結(jié)果集緩存(ResultSetCaching)

這一特性能大大提高很多程序的性能。在一些MIS系統(tǒng)或者OLAP系統(tǒng)中,需要使用

到很多"selectcount?!边@樣的查詢。在之前,我們假如要提高這樣的查詢的性能,也許需

要使用物化視圖或者查詢重寫的技術(shù)。在11g,我們就只需要加一個/*+result_cache*/的提

醒就可以將結(jié)果集緩存住,這樣就能大大提高查詢性能。當(dāng)然,在這種情況下,我們也許還

要關(guān)心此外一個問題:完整性。由于在oracle中是通過一致性讀來保證數(shù)據(jù)的完整性的。

而顯然,在這種新特性下,為提高性能,是從緩存中的結(jié)果集中讀取數(shù)據(jù),而不會從回滾段

中讀取數(shù)據(jù)的。關(guān)于這個問題,答案是完全能保證完整性。由于結(jié)果集是被獨立緩存的,在

查詢期間,任何其他DML語句都不會影響結(jié)果集中的內(nèi)容,因而可以保證數(shù)據(jù)的完整性。

?對象依賴性改善

在11g之前,假如有函數(shù)或者視圖依賴于某張表,一旦這張表發(fā)生結(jié)構(gòu)變化,無論是

否涉及到函數(shù)或視圖所依賴的屬性,都會使函數(shù)或視圖變?yōu)閕nvalid,在11g中,對這種情

況進(jìn)行了調(diào)整:假如表改變的屬性與相關(guān)的函數(shù)或視圖無關(guān),則相關(guān)對象狀態(tài)不會發(fā)生變化。

?正則表達(dá)式的改善

在10g中,引入了正則表達(dá)式。這一特性大大方便了開發(fā)人員。11g,oracle再次對這

一特性進(jìn)行了改善。其中,增長了一個名為regexp_count的函數(shù)。此外,其他的正則表達(dá)

式函數(shù)也得到了改善。

?新SQL語法=>

我們在調(diào)用某一函數(shù)時,可以通過=>來為特定的函數(shù)參數(shù)指定數(shù)據(jù)。而在11g中,這

一語法也同樣可以出現(xiàn)在sql語句中了。例如,你可以寫這樣的語句:

selectf(x=>6)fromdual;

?對'TCP包(utl_tcp、11tLsmtp…)支持FGAC(FineGrainedAccessControl)安全控制

?增長了只讀表(read-onlytable)

在以前,我們是通過觸發(fā)器或者約束來實現(xiàn)對表的只讀控制。11g中不需要這么麻煩了,

可以直接指定表為只讀表。

?觸發(fā)器執(zhí)行效率提高了

內(nèi)部單元內(nèi)聯(lián)(Intra-Un計inlining)

在C語言中,你可以通過內(nèi)聯(lián)函數(shù)(inline)或者宏實現(xiàn)使某些小的、被頻繁調(diào)用的函數(shù)

內(nèi)聯(lián),編譯后,調(diào)用內(nèi)聯(lián)函數(shù)的部分會編譯成內(nèi)聯(lián)函數(shù)的函數(shù)體,因而提高函數(shù)效率。在

11g的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論