版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Oracle程序員面試分類(lèi)模擬10簡(jiǎn)答題1.
Oracle中哪個(gè)包用于生成隨機(jī)值?正確答案:DBMS_RANDOM是一個(gè)可以生成隨機(jī)數(shù)值或者隨機(jī)字符串的程序包。這個(gè)包有INITIALIZE()、S(江南博哥)EED()、TERMINATE()、VALUE()、NORMAL()、RANDOM()、STRING()等幾個(gè)函數(shù),它們提供了內(nèi)置的隨機(jī)數(shù)生成器,可以用于快速生成隨機(jī)數(shù),下面只介紹VALUE()和STRING()函數(shù),其他函數(shù)的使用方法參考官方文檔。
(1)DBMS_RANDOM.VALUE方法VALUE()是最常用的方法,它的用法一般沒(méi)有參數(shù),會(huì)返回一個(gè)具有38位精度的數(shù)值,范圍從0.0到1.0,但不包括1.0。
(2)DBMS_RANDOM.STRING方法
DBMS_RANDOM.STRING可以用來(lái)生成隨機(jī)字符串,如下:
除此之外,還有DBMS_RANDOM.RANDOM返回的值介于2的31次方和-2的31次方之間的整數(shù)值,還有其他一些不常用的函數(shù),這里就不介紹了。
2.
ORA_ROWSCN函數(shù)的作用是什么?正確答案:對(duì)于每一行數(shù)據(jù),ORA_ROWSCN返回每一行最近被修改的大概時(shí)間,可用于查詢(xún)表最后一次被執(zhí)行DML操作的時(shí)間。由于Oracle通過(guò)事務(wù)提交對(duì)行所在數(shù)據(jù)塊來(lái)進(jìn)行SCN(SystemChangeNumber,系統(tǒng)改變號(hào),一個(gè)由系統(tǒng)內(nèi)部維護(hù)的序列號(hào),當(dāng)系統(tǒng)需要更新的時(shí)候自動(dòng)增加,它是系統(tǒng)中維持?jǐn)?shù)據(jù)的一致性和順序恢復(fù)的重要標(biāo)志)的跟蹤,所以,它不精確??梢酝ㄟ^(guò)在創(chuàng)建表時(shí)使用行級(jí)別的依賴(lài)跟蹤來(lái)獲得一個(gè)更加精確的SCN。
在對(duì)視圖進(jìn)行查詢(xún)時(shí),不能使用ORA_ROWSCN函數(shù),但對(duì)于視圖的基表是可以使用ORA_ROWSCN函數(shù)的,也能在UPDATE或DELETE語(yǔ)句的WHERE子句中使用ORA_ROWSCN函數(shù)。ORA_ROWSCN雖然不能用于閃回查詢(xún),但是可以用閃回版本查詢(xún)來(lái)代替ORA_ROWSCN。ORA_ROWSCN也不能用于外部表。ORA_ROWSCN函數(shù)的使用示例如下:
3.
什么是臨時(shí)表?它有哪些分類(lèi)?正確答案:在創(chuàng)建數(shù)據(jù)表的時(shí)候,如果沒(méi)有特殊地指明,那么創(chuàng)建的表是一個(gè)永久的關(guān)系型表,也就是說(shuō),這個(gè)表中對(duì)應(yīng)的數(shù)據(jù),除非是顯式地刪除,否則表中的數(shù)據(jù)是永遠(yuǎn)都存在的。相對(duì)應(yīng)的,在Oracle數(shù)據(jù)庫(kù)中,還有一種類(lèi)型的表,稱(chēng)為臨時(shí)表。這個(gè)臨時(shí)表和永久表最大的區(qū)別就是表中的數(shù)據(jù)不會(huì)永遠(yuǎn)地存在。當(dāng)一個(gè)會(huì)話(huà)結(jié)束或者事務(wù)結(jié)束的時(shí)候,這個(gè)臨時(shí)表中的數(shù)據(jù),不用用戶(hù)自己刪除,數(shù)據(jù)庫(kù)自己會(huì)自動(dòng)清除。
Oracle的臨時(shí)表創(chuàng)建之后基本不占用表空間,如果沒(méi)有指定臨時(shí)表(包括臨時(shí)表的索引)存放的表空間,那么插入到臨時(shí)表的數(shù)據(jù)是存放在Oracle系統(tǒng)的默認(rèn)臨時(shí)表空間中(TEMP),一個(gè)系統(tǒng)可能有多個(gè)臨時(shí)表空間。臨時(shí)表的數(shù)據(jù)只能存放在臨時(shí)表空間中。
臨時(shí)表的數(shù)據(jù)只是在事務(wù)期間存在,對(duì)于會(huì)話(huà)類(lèi)型的臨時(shí)表,數(shù)據(jù)在會(huì)話(huà)期間存在,會(huì)話(huà)的數(shù)據(jù)對(duì)于當(dāng)前會(huì)話(huà)私有,每個(gè)會(huì)話(huà)只能看到并修改自己的數(shù)據(jù)。DML鎖不會(huì)加到臨時(shí)表的數(shù)據(jù)上??梢詫?duì)臨時(shí)表創(chuàng)建索引、視圖、觸發(fā)器,可以用exp和imp工具導(dǎo)入導(dǎo)出表的定義,但是不能導(dǎo)出數(shù)據(jù)。
(1)臨時(shí)表的特點(diǎn)
1)多用戶(hù)操作的獨(dú)立性:對(duì)于使用同一張臨時(shí)表的不同用戶(hù),Oracle都會(huì)分配一個(gè)獨(dú)立的TEMPSEGMENT,這樣就避免了多個(gè)用戶(hù)在對(duì)同一張臨時(shí)表操作時(shí)發(fā)生交叉,從而保證了多個(gè)用戶(hù)操作的并發(fā)性和獨(dú)立性。
2)數(shù)據(jù)的臨時(shí)性:既然是臨時(shí)表,顧名思義,存放在該表中的數(shù)據(jù)是臨時(shí)性的。Oracle根據(jù)創(chuàng)建臨時(shí)表時(shí)指定的參數(shù)(ONCOMMITDELETEROWS/ONCOMMITPRESERVEROWS),自動(dòng)將數(shù)據(jù)TRUNCATE掉。
(2)臨時(shí)表的分類(lèi)
Oracle數(shù)據(jù)庫(kù)根據(jù)I臨時(shí)表的性質(zhì)不同,可以分為事務(wù)臨時(shí)表(ONCOMMITDELETEROWS)與會(huì)話(huà)臨時(shí)表(ONCOMMITPRESERVEROWS)。
1)事務(wù)臨時(shí)表。事務(wù)臨時(shí)表是指數(shù)據(jù)只有在當(dāng)前事務(wù)內(nèi)有效,該臨時(shí)表與事務(wù)相關(guān),當(dāng)進(jìn)行事務(wù)提交或者事務(wù)回滾的時(shí)候,臨時(shí)表中的數(shù)據(jù)將自動(dòng)被清空,其他的內(nèi)容和會(huì)話(huà)級(jí)的臨時(shí)表一致(包括退出SESSION的時(shí)候,事務(wù)級(jí)的臨時(shí)表的數(shù)據(jù)也會(huì)被清空)。一般情況下,如果在創(chuàng)建數(shù)據(jù)表的時(shí)候,沒(méi)有特殊指明表是會(huì)話(huà)臨時(shí)表的話(huà),那么該表默認(rèn)為事務(wù)臨時(shí)表。所以,事務(wù)臨時(shí)表中的數(shù)據(jù)就被清空的情況包括:①提交事務(wù)(COMMIT);②回滾事務(wù)(ROLLBACK);③退出SESSION。
創(chuàng)建事務(wù)臨時(shí)表的語(yǔ)法如下:
2)會(huì)話(huà)臨時(shí)表。會(huì)話(huà)臨時(shí)表,顧名思義,是指數(shù)據(jù)只在當(dāng)前會(huì)話(huà)內(nèi)是有效的臨時(shí)表。關(guān)閉當(dāng)前會(huì)話(huà)或者進(jìn)行新的連接之后,數(shù)據(jù)表中的內(nèi)容就會(huì)被清除。
查看一張表是否臨時(shí)表,可以從DBA_TABLES視圖的DURATION列來(lái)查詢(xún):
會(huì)話(huà)臨時(shí)表與事務(wù)臨時(shí)表主要的差異就在于刪除數(shù)據(jù)的時(shí)機(jī)不同。事務(wù)臨時(shí)表是在事務(wù)提交或回滾的時(shí)候清除數(shù)據(jù),而會(huì)話(huà)臨時(shí)表則是在關(guān)閉當(dāng)前會(huì)話(huà)的時(shí)候清除數(shù)據(jù)。只要當(dāng)前會(huì)話(huà)沒(méi)有關(guān)閉,即使事務(wù)完成了,會(huì)話(huà)臨時(shí)表中的數(shù)據(jù)仍然存在,不會(huì)被清除。
(3)臨時(shí)表的統(tǒng)計(jì)信息
臨時(shí)表默認(rèn)是不收集統(tǒng)計(jì)信息的,但是可以使用DBMS_STATS.GATHER_SCHEMA_STATS在SCHEMA級(jí)別收集,需要設(shè)置GATHER_TEMP為T(mén)RUE(默認(rèn)為FALSE);也可以和普通表一樣使用GATHER_TABLE_STATS在表級(jí)別來(lái)收集。需要注意的是,只能收集會(huì)話(huà)臨時(shí)表的統(tǒng)計(jì)信息,不能收集事務(wù)臨時(shí)表的統(tǒng)計(jì)信息。會(huì)話(huà)臨時(shí)表的統(tǒng)計(jì)信息是被所有的會(huì)話(huà)所共享的,所以,在一般情況下,不建議收集臨時(shí)表的統(tǒng)計(jì)信息,否則可能會(huì)導(dǎo)致很?chē)?yán)重的數(shù)據(jù)庫(kù)性能問(wèn)題。臨時(shí)表的統(tǒng)計(jì)信息在生成執(zhí)行計(jì)劃時(shí)一般是被動(dòng)態(tài)采樣的。
4.
什么是外部表?正確答案:外部表是指不存在于數(shù)據(jù)庫(kù)中的表。通過(guò)向Oracle提供描述外部表的元數(shù)據(jù),可以把一個(gè)操作系統(tǒng)文件當(dāng)成一個(gè)只讀的數(shù)據(jù)庫(kù)表,就像這些數(shù)據(jù)存儲(chǔ)在一個(gè)普通數(shù)據(jù)庫(kù)表中一樣來(lái)進(jìn)行訪(fǎng)問(wèn)。外部表是對(duì)數(shù)據(jù)庫(kù)表的延伸。外部表只能在Oracle9i之后的版本來(lái)使用。
Oracle外部表用來(lái)存取數(shù)據(jù)庫(kù)以外的文本文件(TextFile)或Oracle專(zhuān)屬格式文件。因此,建立外部表時(shí)不會(huì)產(chǎn)生段、區(qū)、數(shù)據(jù)塊等存儲(chǔ)結(jié)構(gòu),只有與表相關(guān)的定義放在數(shù)據(jù)字典中。外部表僅供查詢(xún),不能對(duì)外部表的內(nèi)容進(jìn)行修改(例如INSERT、UPDATE、DELETE等操作)。不能在外部表上建立索引。因?yàn)閯?chuàng)建索引就意味著要存在對(duì)應(yīng)的索引記錄,而其實(shí)外部表的數(shù)據(jù)沒(méi)有存儲(chǔ)在數(shù)據(jù)庫(kù)中,故在外部表上是無(wú)法建立索引的。
如果外部表采用PARALLEL的方式加載的話(huà),那么加載的數(shù)據(jù)是無(wú)序的。所以,這種情況需要綜合考慮,尤其是在使用該方式來(lái)查看告警日志文件內(nèi)容的時(shí)候需要特別注意。
1)外部表有如下幾點(diǎn)特性:
①外部表的數(shù)據(jù)位于文件系統(tǒng)之中,并按一定格式分割。文本文件或者其他類(lèi)型的表可以作為外部表。操作系統(tǒng)文件在數(shù)據(jù)庫(kù)中的標(biāo)志是通過(guò)一個(gè)邏輯目錄來(lái)映射的,所以外部表需要在Oracle數(shù)據(jù)庫(kù)“服務(wù)端”創(chuàng)建目錄,這些OS文件必須放在這些目錄中。
②對(duì)外部表的訪(fǎng)問(wèn)可以通過(guò)SQL語(yǔ)句來(lái)完成,而不需要先將外部表中的數(shù)據(jù)裝載進(jìn)數(shù)據(jù)庫(kù)中。
③外部表是只讀的,因此,只能對(duì)外部表進(jìn)行SELECT操作,不能對(duì)外部表執(zhí)行DML(DELETE、UPDATE和INSERT等)操作,也不能創(chuàng)建索引,但是可以創(chuàng)建視圖,也可以創(chuàng)建同義詞。
④ANALYZE語(yǔ)句不支持采集外部表的統(tǒng)計(jì)數(shù)據(jù),應(yīng)該使用DMBS_STATS包來(lái)采集外部表的統(tǒng)計(jì)數(shù)據(jù)。
⑤可以對(duì)外部表執(zhí)行查詢(xún)、連接和并行操作。
⑥外部表不支持LOB對(duì)象。
2)與外部表相關(guān)的幾個(gè)視圖如下:
5.
Oracle的表可以分為哪幾類(lèi)?正確答案:從理論上來(lái)講,不存在一種能夠滿(mǎn)足所有讀取要求的數(shù)據(jù)存儲(chǔ)方式,所以,Oracle設(shè)計(jì)了大約5種數(shù)據(jù)的存儲(chǔ)格式,詳見(jiàn)表。
從上表中可以看出,沒(méi)有最好的技術(shù),只有最合適的技術(shù)。
6.
物化視圖(MaterializedViews)的作用是什么?正確答案:物化視圖(MaterializedViews)是包括一個(gè)查詢(xún)結(jié)果的數(shù)據(jù)庫(kù)對(duì)象,用于減少那些匯總、集合和分組的信息的集合數(shù)量。它們通常適合于數(shù)據(jù)倉(cāng)庫(kù)和DSS系統(tǒng)(DecisionSupportSystem,決策支持系統(tǒng))。物化視圖在以前的Oracle版本中稱(chēng)為快照。物化視圖可以查詢(xún)表,視圖和其他的物化視圖。物化視圖有如下的一些特點(diǎn):
1)視圖并不真正地包含數(shù)據(jù),但是物化視圖則真正地包含數(shù)據(jù)。
2)物化視圖等于是對(duì)其基表的一種預(yù)處理。
3)物化視圖中的數(shù)據(jù)可以隨基表的變化而變化。
4)物化視圖可以加快某些查詢(xún)操作的速度,但它
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 機(jī)器人課件-機(jī)器人控制
- 【物理課件】阿基米的原理課件
- 《情商訓(xùn)練》課件
- 《企業(yè)安全知識(shí)演講》課件
- 單位管理制度展示合集【人事管理篇】十篇
- 單位管理制度展示大全【人力資源管理】十篇
- 豐田改善內(nèi)部課件.圖
- 單位管理制度品讀選集【員工管理篇】十篇
- 2024年汽車(chē)銷(xiāo)售工作計(jì)劃書(shū)(34篇)
- 食品安全監(jiān)管基礎(chǔ)與風(fēng)險(xiǎn)防控課件
- 江蘇省宿遷市沭陽(yáng)縣2023-2024學(xué)年八年級(jí)上學(xué)期期末英語(yǔ)試題
- 安全隱患大排查大整治專(zhuān)項(xiàng)行動(dòng)方案
- 藍(lán)軍戰(zhàn)略課件
- 科學(xué)計(jì)算語(yǔ)言Julia及MWORKS實(shí)踐 課件8 - 基本數(shù)據(jù)類(lèi)型
- 湖北省黃岡市2023-2024學(xué)年高一上學(xué)期期末考試化學(xué)試題(含答案)
- 物流公司安全生產(chǎn)監(jiān)督檢查管理制度
- DB22T 277-2011 建筑電氣防火檢驗(yàn)規(guī)程
- DB52T 1696-2022 口腔綜合治療臺(tái)用水衛(wèi)生管理規(guī)范
- 2025屆上海市復(fù)旦附中浦東分校物理高二上期末教學(xué)質(zhì)量檢測(cè)試題含解析
- 快樂(lè)讀書(shū)吧:童年(專(zhuān)項(xiàng)訓(xùn)練)-2023-2024學(xué)年六年級(jí)語(yǔ)文上冊(cè)(統(tǒng)編版)(含答案)
- 2023-2024學(xué)年廣東省廣州市海珠區(qū)九年級(jí)(上)期末英語(yǔ)試卷
評(píng)論
0/150
提交評(píng)論