Oracle程序員面試分類模擬19_第1頁(yè)
Oracle程序員面試分類模擬19_第2頁(yè)
Oracle程序員面試分類模擬19_第3頁(yè)
Oracle程序員面試分類模擬19_第4頁(yè)
Oracle程序員面試分類模擬19_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Oracle程序員面試分類模擬19簡(jiǎn)答題1.

什么是基數(shù)反饋(CardinalityFeedback)?正確答案:基數(shù)反饋(CardinalityFeedback,CFB)是Oracle11(江南博哥)gR2出現(xiàn)的一個(gè)新特性,它的出現(xiàn)是為了幫助Oracle優(yōu)化器依據(jù)更精準(zhǔn)的基數(shù)生成更加優(yōu)秀的執(zhí)行計(jì)劃。基數(shù)的評(píng)估準(zhǔn)確與否,對(duì)于優(yōu)化器而言異常重要,將直接影響到后續(xù)的JOINCOST等重要的成本計(jì)算評(píng)估。若評(píng)估不當(dāng)則會(huì)造成CBO選擇不當(dāng)?shù)膱?zhí)行計(jì)劃。此技術(shù)對(duì)于僅執(zhí)行一次的SQL無(wú)效,在SQL第一次執(zhí)行時(shí),記錄存儲(chǔ)實(shí)際的基數(shù)和評(píng)估的基數(shù)之間的差異,如果差異較大,在第二次執(zhí)行時(shí),優(yōu)化器會(huì)依據(jù)實(shí)際的基數(shù)重新決策生成執(zhí)行計(jì)劃,但是需要注意的是,當(dāng)使用更準(zhǔn)確的基數(shù)重新生成執(zhí)行計(jì)劃時(shí),生成的執(zhí)行計(jì)劃與第一次時(shí)使用的執(zhí)行計(jì)劃完全有可能是相同的。這個(gè)技術(shù)的出現(xiàn)是由于優(yōu)化器在一些情況下不能很好地去計(jì)算基數(shù)的數(shù)值,比如:統(tǒng)計(jì)信息缺失或陳舊、多渭詞、直方圖缺失等。

Oracle只針對(duì)下面情況開啟CFB:

1)沒有收集表的統(tǒng)計(jì)信息,并且動(dòng)態(tài)采樣(DynamicSampling)也沒有開啟。

2)查詢條件復(fù)雜(比如條件有函數(shù))或者涉及多列,但卻沒有收集擴(kuò)展的統(tǒng)計(jì)信息(ExtendedStatistics)。

在這幾種情況下,CBO是無(wú)法估算出準(zhǔn)確的Cardinality的。針對(duì)上述情況,Oracle會(huì)監(jiān)控操作的實(shí)際行數(shù)(A-Row),然后對(duì)比CBO估算的行數(shù)(E-Row)。如果兩個(gè)值相差很大,那么就記錄實(shí)際行數(shù)(A-Row),做上標(biāo)記。下次執(zhí)行時(shí)再次進(jìn)行硬解析,根據(jù)實(shí)際行數(shù)來(lái)重新生成執(zhí)行計(jì)劃。如果兩個(gè)值相差不大,那么CBO就不再監(jiān)控這條SQL語(yǔ)句。

Oracle11gR2針對(duì)此特性,也專門在V$SQL_SHARED_CURSOR中增加了USE_FEEDBACK_STATS列來(lái)記錄SQL是否使用了基數(shù)反饋?;鶖?shù)反饋的開啟和關(guān)閉通過一個(gè)隱含參數(shù)“_OPTIMIZER_USE_FEEDBACK”來(lái)控制,該參數(shù)默認(rèn)為TRUE,表示開啟技術(shù)反饋特性。此參數(shù)除了可以在SESSION和SYSTEM級(jí)別進(jìn)行設(shè)置之外,還可以在SQL語(yǔ)句級(jí)使用Hint進(jìn)行開啟和關(guān)閉,如下:

需要注意的是,如果動(dòng)態(tài)采樣被啟用,那么是不會(huì)使用基數(shù)反饋特性的。若使用了該特性則在執(zhí)行計(jì)劃的Note部分可以看到“cardinalityfeedbackusedforthisstatement”字樣?;鶖?shù)反饋在Oracle12c上得到更進(jìn)一步的擴(kuò)展稱為統(tǒng)計(jì)反饋(StatisticsFeedback),并且成為Oracle12c自動(dòng)重新優(yōu)化(AutomaticReoptimization)的一部分。但是由于CFB的評(píng)估結(jié)果數(shù)據(jù)只存在內(nèi)存中(重啟之后就會(huì)丟失),在會(huì)話之間是不可共用的,并且由于在Oracle11g中存在過多的Bug,常見的問題就是在第二次執(zhí)行SQL時(shí)候性能下降很多。因此在Oracle11g的數(shù)據(jù)庫(kù)中往往對(duì)11.2.0.4以下的數(shù)據(jù)庫(kù)會(huì)將該特性關(guān)閉。

2.

如何查詢表的歷史統(tǒng)計(jì)信息正確答案:從Oracle10g開始,當(dāng)收集表的統(tǒng)計(jì)信息的時(shí)候,舊的統(tǒng)計(jì)數(shù)據(jù)被保留,如果因?yàn)樾碌慕y(tǒng)計(jì)信息而出現(xiàn)性能問題,舊的統(tǒng)計(jì)信息就可以被恢復(fù)。歷史統(tǒng)計(jì)信息保存在以下幾張表中:

1)WRI$_OPTSTAT_TAB_HISTORY表的統(tǒng)計(jì)信息。

2)WRI$_OPTSTAT_IND_HISTORY索引的統(tǒng)計(jì)信息。

3)WRI$_OPTSTAT_HISTHEAD_HISTORY列的統(tǒng)計(jì)信息。

4)WRI$_OPTSTAT_HISTGRM_HISTORY直方圖的信息。

從視圖DBA_TAB_STATS_HISTORY可以查詢歷史收集統(tǒng)計(jì)信息的時(shí)間,但是不能查詢到行數(shù),所以需要結(jié)合基表來(lái)查詢,查詢的SQL語(yǔ)句如下:

查詢索引的歷史統(tǒng)計(jì)信息的SQL語(yǔ)句如下:

默認(rèn)情況下統(tǒng)計(jì)信息將被保留31天,可以使用下面的命令修改:

注意:這些統(tǒng)計(jì)信息在SYSAUX表空間中占有額外的存儲(chǔ)開銷,所以應(yīng)該注意并防止統(tǒng)計(jì)信息將表空間填滿。

下面的查詢返回統(tǒng)計(jì)信息已經(jīng)被刪除到的日期(所以只有在這日期之后的統(tǒng)計(jì)信息才可能被恢復(fù))。任何恢復(fù)到比這日期更早的統(tǒng)計(jì)信息的請(qǐng)求都會(huì)失?。骸癘RA-20006:Unabletorestorestatistics,statisticshistorynotavailable”:

查詢到可以恢復(fù)統(tǒng)計(jì)信息到某一個(gè)比較好的時(shí)間之后,可以執(zhí)行下面的命令進(jìn)行恢復(fù):

可以通過如下的命令返回2次統(tǒng)計(jì)信息的比較結(jié)果:

3.

Oracle如何并發(fā)地收集統(tǒng)計(jì)信息?正確答案:對(duì)于大表的統(tǒng)計(jì)信息收集可以通過DEGREE參數(shù)使得掃描大表的時(shí)候進(jìn)行并行掃描,從而加快掃描速度,縮短了收集統(tǒng)計(jì)信息的時(shí)間。但是,即使加了DEGREE參數(shù),在收集統(tǒng)計(jì)信息的時(shí)候,還是進(jìn)行一個(gè)表一個(gè)表的掃描,并沒有并發(fā)的同時(shí)掃描多個(gè)表。在Oracle11.2.0.2之后,有了一個(gè)參數(shù),可以并發(fā)掃描表,這就是CONCURRENT參數(shù)??梢酝ㄟ^以下SQL語(yǔ)句查詢數(shù)據(jù)庫(kù)是否啟用了CONCURRENT收集統(tǒng)計(jì)信息,默認(rèn)為FALSE,表示沒有開啟并發(fā)收集統(tǒng)計(jì)信息:

開啟方式為:

開啟CONCURRENT之后,收集統(tǒng)計(jì)信息就會(huì)以并發(fā)的形式進(jìn)行,會(huì)并發(fā)出多個(gè)JOB進(jìn)程。在并發(fā)收集統(tǒng)計(jì)信息時(shí),數(shù)據(jù)庫(kù)生成的JOB數(shù)會(huì)根據(jù)具體情況來(lái)分配。在大多數(shù)情況下,DBMS_STATS程序會(huì)給每個(gè)對(duì)象分配一個(gè)JOB;但如果對(duì)象(表或者分區(qū))的大小太小,為了節(jié)省資源,Oracle會(huì)合并多個(gè)表和分區(qū)在一個(gè)JOB中執(zhí)行。為了防止同時(shí)處理多個(gè)分區(qū)表的分區(qū)時(shí)發(fā)生死鎖,所以,對(duì)于分區(qū)表的處理機(jī)制是每次只能處理一個(gè)分區(qū)表,其他的分區(qū)表需要等待,待前一個(gè)分區(qū)表處理完后再處理下一個(gè)。在Oracle11.2.0.2到11.2.0.4的版本上,CONCURRENT可取的值為TRUE(開啟并發(fā))和FALSE(關(guān)閉并發(fā))。在Oracle12c的版本上,可以設(shè)置以下的值:

可以通過以下的視圖對(duì)并發(fā)統(tǒng)計(jì)信息收集進(jìn)行監(jiān)視:

監(jiān)控并發(fā)收集統(tǒng)計(jì)信息JOB的SQL代碼如下:

對(duì)于并發(fā)收集統(tǒng)計(jì)信息需要注意如下幾點(diǎn):

1)用CONCURRENT收集統(tǒng)計(jì)信息,需要收集統(tǒng)計(jì)信息的用戶具有CREATEJOB、MANAGESCHEDULER和MANAGEANYQUEUE權(quán)限。即使是該用戶具有了DBA角色,也還是需要顯式授權(quán)上述權(quán)限。否則執(zhí)行JOB的時(shí)候,可能會(huì)報(bào)錯(cuò):“ORA-27486insufficientprivileges”、“ORA-20000:Statisticscollectionfailedfor32235objectsinthedatabase”。

2)因?yàn)镃ONCURRENT不能控制并發(fā)度的大小,所以,如果數(shù)據(jù)庫(kù)的初始化參數(shù)JOB_QUEUE_PROCESSES設(shè)置的太高(在Oracle11.2.0.3之后,這個(gè)值的默認(rèn)值是1000,所以就可能并發(fā)出1000個(gè)JOB),那么對(duì)數(shù)據(jù)庫(kù)的性能影響較大。所以開啟CONCURRENT的另外一個(gè)建議就是使用ResourceManager來(lái)控制資源的使用。

3)下表列出了并發(fā)和并行在收集統(tǒng)汁信息方面的一些區(qū)別。

4.

當(dāng)收集表的統(tǒng)計(jì)信息時(shí)應(yīng)該注意哪些問題?正確答案:關(guān)于收集統(tǒng)計(jì)信息需要注意以下幾點(diǎn):

1)對(duì)于數(shù)據(jù)量不大的OLTP類型的系統(tǒng),建議使用自動(dòng)收集統(tǒng)計(jì)信息,并對(duì)一些特殊的大表寫JOB定時(shí)收集統(tǒng)計(jì)信息。如果是數(shù)據(jù)量很大的OLAP或者DSS系統(tǒng),那么建議DBA自己寫JOB腳本來(lái)收集統(tǒng)計(jì)信息。

2)在導(dǎo)入大量數(shù)據(jù)后應(yīng)及時(shí)收集統(tǒng)計(jì)信息后才能進(jìn)行相關(guān)的后續(xù)業(yè)務(wù)處理(包括查詢和修改),否則可能會(huì)由于實(shí)際數(shù)據(jù)量和統(tǒng)計(jì)信息里記錄的數(shù)據(jù)量存在巨大差異而導(dǎo)致CBO選擇錯(cuò)誤的執(zhí)行計(jì)劃。

3)全局臨時(shí)表默認(rèn)不能收集統(tǒng)計(jì)信息,在生成執(zhí)行計(jì)劃時(shí)采用動(dòng)態(tài)采樣比較好。

4)對(duì)于某些新上線或新遷移的系統(tǒng),建議進(jìn)行全庫(kù)收集一次統(tǒng)計(jì)信息。

5)建議及時(shí)對(duì)包含日期型字段的表收集統(tǒng)計(jì)信息,避免出現(xiàn)謂詞越界現(xiàn)象。

6)統(tǒng)計(jì)信息收集作業(yè)采樣比例:對(duì)于Oracle11g及其以上的版本收集統(tǒng)計(jì)信息的采樣比例建議采用。DBMS_STATS.AUTO_SAMPLESIZE。如果是Oracle10g,那么建議將采樣比例的初始值設(shè)為30%,然后根據(jù)目標(biāo)SQL的實(shí)際執(zhí)行情況再做調(diào)整。

7)系統(tǒng)統(tǒng)計(jì)信息:如果系統(tǒng)的硬件環(huán)境發(fā)生了變化,那么建議要額外收集一次系統(tǒng)統(tǒng)計(jì)信息。

8)內(nèi)部對(duì)象統(tǒng)計(jì)信息:在明確診斷出系統(tǒng)已有的性能問題是因?yàn)閄$表的內(nèi)部對(duì)象統(tǒng)計(jì)信息不準(zhǔn)引起的,這個(gè)時(shí)候就應(yīng)該收集X$表的內(nèi)部對(duì)象統(tǒng)計(jì)信息,其他情形就不要收集了。

9)表的大小、是否并行:若表很大,而系統(tǒng)空閑,則可以使用并行來(lái)收集統(tǒng)計(jì)信息。

10)表是否分區(qū):若是分區(qū)表則建議收集全局的統(tǒng)計(jì)信息并且收集數(shù)據(jù)量有變更的單個(gè)分區(qū)(加GRANULARITY和參數(shù)并設(shè)置屬性INCREMENTAL)的統(tǒng)計(jì)信息。

11)是否收集索引的統(tǒng)計(jì)信息:一般情況下都應(yīng)該收集索引的統(tǒng)計(jì)信息。

12)是否收集直方圖。對(duì)直方圖統(tǒng)計(jì)信息的收集策略是對(duì)已經(jīng)存在直方圖統(tǒng)計(jì)信息的列才收集直方圖統(tǒng)計(jì)信息,而目標(biāo)列的初次直方圖統(tǒng)計(jì)信息則是由了解系統(tǒng)的DBA手工來(lái)收集直方圖。設(shè)置METHOD_OPT的值為“FORALLCOLUMNSSIZEREPEAT”。

13)是否可以并發(fā)收集統(tǒng)計(jì)信息:若系統(tǒng)有很多小表,則可以考慮并發(fā)收集統(tǒng)計(jì)信息。

14)系統(tǒng)的負(fù)載情況:在手動(dòng)收集統(tǒng)計(jì)信息的時(shí)候需要注意系統(tǒng)的負(fù)載情況。

15)預(yù)估多久可以收集完成:對(duì)OLAP系統(tǒng)的大表而言,根據(jù)平時(shí)收集統(tǒng)計(jì)信息的經(jīng)驗(yàn)要預(yù)估出收集統(tǒng)計(jì)信息要花費(fèi)多長(zhǎng)的時(shí)間。

16)基于數(shù)據(jù)庫(kù)、SCHEMA或是表級(jí)別:根據(jù)情況判斷是否有必要在數(shù)據(jù)庫(kù)或SCHEMA級(jí)別來(lái)收集統(tǒng)計(jì)信息。

17)是否需要收集擴(kuò)展列的統(tǒng)計(jì)信息。如果表中的數(shù)據(jù)傾斜度較大,那么收集直方圖能最大程度地幫助優(yōu)化器計(jì)算出準(zhǔn)確的Cardinality,從而避免產(chǎn)生差的執(zhí)行計(jì)劃;再進(jìn)一步,如果存在傾斜的多個(gè)列共同構(gòu)成了Predicate里的等值連接且這些列間存在較強(qiáng)的列相關(guān)性的話,那么生成帶有直方圖的多列統(tǒng)計(jì)信息是一個(gè)上佳的選擇,能夠最大程度地幫助優(yōu)化器準(zhǔn)確預(yù)測(cè)出Cardinality。

18)是否設(shè)置NO_INVALIDATE為FALSE。該選項(xiàng)有TRUE、FALSE和DBMS_STATS.AUTO_INVALIDATE這3個(gè)值。如果取值為TRUE,那么表示收集統(tǒng)計(jì)信息后不進(jìn)行游標(biāo)失效動(dòng)作,原有的SharedCursor保持原有狀態(tài)。如果取值為FALSE,那么表示將統(tǒng)計(jì)信息對(duì)象相關(guān)的所有Cursor全部失效。如果設(shè)置為AUTO_NVALIDATE,那么Oracle自己決定SharedCursor失效動(dòng)作,當(dāng)SQL再次執(zhí)行時(shí)間距離上次收集統(tǒng)計(jì)信息的時(shí)間超過5h(隱含參數(shù)“_OPTIMIZER_INVALlDATION_PERIOD”決定)則對(duì)SQL重新做硬解析。AUTO_INVALIDATE為默認(rèn)選項(xiàng)。有些DBA在收集統(tǒng)計(jì)信息時(shí),沒有使用NO_INVALIDATE=>FALSE選項(xiàng),所以,即使收集了統(tǒng)計(jì)信息,執(zhí)行計(jì)劃也不會(huì)立即改變。

19)對(duì)于OLTP類型的數(shù)據(jù)庫(kù),需要特別關(guān)注DML比較頻繁的以及數(shù)據(jù)加載比較大的表及分區(qū)表。

20)檢查是否有臨近統(tǒng)計(jì)信息收集窗口的數(shù)據(jù)加載工作,如果有,是否能在數(shù)據(jù)庫(kù)統(tǒng)計(jì)信息的窗口時(shí)間完成,如果不能在窗口時(shí)間完成,那么應(yīng)該針對(duì)這段時(shí)間加載的數(shù)據(jù),特別是大量的數(shù)據(jù),在相關(guān)加載腳本完成之后,加入統(tǒng)計(jì)信息的收集。

21)如果加載數(shù)據(jù)量比較大,并且是分區(qū)表,每個(gè)分區(qū)的業(yè)務(wù)數(shù)據(jù)呈現(xiàn)的是均勻的,在Oracle11g可以考慮采用DBMS_STATS.COPY_TABLE_STATS先把統(tǒng)計(jì)信息做個(gè)快速的設(shè)置,然后,再收集該分區(qū)的統(tǒng)計(jì)信息。

其實(shí),上述幾點(diǎn)是沒有一個(gè)普適性的標(biāo)準(zhǔn)答案的,因?yàn)椴煌南到y(tǒng)其數(shù)據(jù)量、數(shù)據(jù)分布情況都不盡相同,甚至可能會(huì)有很大的區(qū)別,所以適合于某套系統(tǒng)的統(tǒng)計(jì)信息收集策略并不一定能適用于另外一套系統(tǒng)。收集統(tǒng)計(jì)信息總的原則就是量體裁衣,即要找到適合自己系統(tǒng)的統(tǒng)計(jì)信息收集策略,用盡量小的代價(jià)收集到能穩(wěn)定跑出正確執(zhí)行計(jì)劃的統(tǒng)計(jì)信息即可,也就是說收集到的統(tǒng)計(jì)信息不一定要特別準(zhǔn),只要具備代表性,能穩(wěn)定跑出正確的執(zhí)行計(jì)劃就可以了。

5.

等待事件的分類?常見等待事件?正確答案:Oracle的等待事件主要可以分為兩類:空閑(Idle)等待事件和非空閑(Non-Idle)等待事件。

1)空閑等待事件是指Oracle正等待某種工作,在診斷和優(yōu)化數(shù)據(jù)庫(kù)的時(shí)候,不用過多注意這部分事件。

2)非空閑等待事件專門針對(duì)Oracle的活動(dòng),是指數(shù)據(jù)庫(kù)任務(wù)或應(yīng)用運(yùn)行過程中發(fā)生的等待,這些等待事件是在調(diào)整數(shù)據(jù)庫(kù)的時(shí)候需要關(guān)注與研究的。

通過如下的SQL語(yǔ)句可以查詢等待事件的類型:

一些常見的、重要的等待事件如下:

(1)數(shù)據(jù)文件I/O相關(guān)的等待事件

dbfilesequentialread、dbfilescatteredread、dbfileparallelread、directpathread、directpathwrite。

(2)控制文件I/O相關(guān)的等待事件

controlfileparallelwrite、controlfileseauentialread、controlfilesinglewrite。

(3)Redo日志文件I/O相關(guān)的等待事件

logfileparallelwrite、logfilesync、logfilesequentialread、logfilesinglewrite、switchlogfilecommand、logfileswitchcompletion、logfileswitch(clearinglogfile)、logfileswitch(checkpointincomplete)、logswitch/archive、logfileswitch(archivingneeded)。

(4)高速緩存區(qū)I/O相關(guān)的等待事件

dbfileparallelwrite、dbfilesinglewrite、writecompletewaits、freebufferwaits。

下表列出一些常見等待事件用以拋磚引玉,實(shí)際的數(shù)據(jù)庫(kù)管理中需要掌握和了解的等待事件非常多,也比較復(fù)雜,只需要記住一些常見的面試知識(shí)點(diǎn),其他的等待事件需要在工作中慢慢積累。

除了上表中列舉出來(lái)的等待事件還有很多其他常見的等待事件,這里就不再列舉了,讀者可以關(guān)注作者的微信公眾號(hào)或博客,里面會(huì)有所有等待事件的詳細(xì)介紹。

6.

ROWID和ROWNUM有什么區(qū)別?正確答案:Oracle有兩個(gè)著名的偽列ROWID和ROWNUM,下面分別來(lái)介紹它們。

(1)ROWID

ROWID是一個(gè)偽列,既然是偽列,那么這個(gè)列就不是用戶定義,而是系統(tǒng)自己給加上的。對(duì)每個(gè)表都有一個(gè)ROWID的偽列,但是表中并不物理存儲(chǔ)ROWID列的值。不過可以像使用其他列那樣使用它,但是不能刪除該列,也不能對(duì)該列的值進(jìn)行修改、插入。

ROWID對(duì)訪問一個(gè)表中的給定的行提供了最快的訪問方法,通過ROWID可以直接定位到相應(yīng)的數(shù)據(jù)塊上,然后將其讀到內(nèi)存。當(dāng)創(chuàng)建一個(gè)索引時(shí),該索引不但存儲(chǔ)索引列的值,而且也存儲(chǔ)索引值所對(duì)應(yīng)的行的ROWID,這樣通過索引就可以快速找到相應(yīng)行的ROWID,通過該ROWID,就可以迅速將數(shù)據(jù)查詢出來(lái)。這也就是在使用索引查詢時(shí),速度比較快的原因。

一般來(lái)說,當(dāng)表中的行確定后,ROWID就不會(huì)發(fā)生變化,一旦一行數(shù)據(jù)插入數(shù)據(jù)庫(kù),ROWID在該行的生命周期內(nèi)是唯一的,即使該行產(chǎn)生行遷移,行的ROWID也不會(huì)改變,UPDATE不會(huì)改變ROWID,INSERT更不會(huì)。從ROWID定義可知,只有當(dāng)數(shù)據(jù)行的物理位置改變時(shí)才會(huì)導(dǎo)致ROWID改變,所以,只需要關(guān)心那些會(huì)導(dǎo)致數(shù)據(jù)物理位置變化的操作即可。

ROWID可以分為以下幾種類型:

1)物理ROWID:存儲(chǔ)堆組織表、表簇、表分區(qū)、和索引分區(qū)中的行地址。

2)邏輯ROWID:存儲(chǔ)索引組織表中的行地址。

3)外部ROWID:是外來(lái)表(如通過網(wǎng)關(guān)訪問的DB2表)中的標(biāo)識(shí)符。它們不是標(biāo)準(zhǔn)的Oracle數(shù)據(jù)庫(kù)ROWID。

有一種數(shù)據(jù)類型稱為通用ROWID或UROWID,支持各種ROWID。

當(dāng)如下情況發(fā)生時(shí),ROWID將發(fā)生改變,即當(dāng)數(shù)據(jù)遷移到其他塊的時(shí)候,ROWID就會(huì)改變:

1)對(duì)一個(gè)表做表空間的移動(dòng)或重建后。

2)對(duì)一個(gè)表進(jìn)行了exp/imp或expdp/impdp后。

3)MOVE、FLASHBACKTABLE、修改分區(qū)鍵值到另一個(gè)分區(qū)、分區(qū)表的分區(qū)數(shù)據(jù)轉(zhuǎn)移到其他分區(qū)、SHRINKTABLE等。

通過DBMS_ROWID可以獲取文件號(hào)、塊號(hào)等信息,如下:

(2)ROWNUM

ROWNUM是一個(gè)偽列,不是真正的列,在表中并不真實(shí)存在,它是Oracle數(shù)據(jù)庫(kù)從數(shù)據(jù)文件或緩沖區(qū)中讀取數(shù)據(jù)的順序。切勿理解成記錄的行號(hào)(很多人一直這樣認(rèn)為的),例如想查詢第二行記錄按下面的方法是查詢不到的:

ROWNUM主要應(yīng)用于Top-N查詢中。

7.

Oracle健康檢查有哪些方面?正確答案:要想對(duì)數(shù)據(jù)庫(kù)進(jìn)行全面檢查,內(nèi)容比較多,下面列舉部分檢查項(xiàng)目:

1)數(shù)據(jù)庫(kù)的實(shí)例是否運(yùn)行,最近是否有自動(dòng)重啟現(xiàn)象。

2)ASM實(shí)例是否正常運(yùn)行,剩余ASM磁盤空間有多大。

3)數(shù)據(jù)庫(kù)的參數(shù)是否正常,數(shù)據(jù)庫(kù)的參數(shù)近期是否被修改過。

4)數(shù)據(jù)庫(kù)的表空間大小,是否有表空間快滿了,表空間增長(zhǎng)是否過快(系統(tǒng)表空間是否增長(zhǎng)過快)。

5)是否有業(yè)務(wù)表創(chuàng)建在了SYSTEM表空間上。審計(jì)表是否在SYSTEM表空間上。

6)RMAN備份是否過期,備份是否可用,是否有控制文件的備份。

7)數(shù)據(jù)庫(kù)JOB是否有運(yùn)行錯(cuò)誤。

8)數(shù)據(jù)庫(kù)的告警日志是否有異常告警,例如ORA-4030、ORA-4031、ORA-60、ORA-600、ORA-01555等。

9)數(shù)據(jù)庫(kù)歸檔空間、閃回恢復(fù)區(qū)是否足夠。

10)是否有非常耗費(fèi)資源的SQL曾經(jīng)運(yùn)行過,系統(tǒng)是否有VERSIONCOUNT過高的SQL。

11)DG、OGG是否運(yùn)行正常,歸檔日

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論