版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2025年Oracle數(shù)據(jù)庫筆試題及答案一、單項(xiàng)選擇題(每題2分,共20分)1.Oracle23c中,關(guān)于多租戶架構(gòu)(CDB/PDB)的描述,錯誤的是()A.每個PDB可獨(dú)立設(shè)置用戶和權(quán)限B.CDB根容器(CDB$ROOT)存儲公共元數(shù)據(jù)C.PDB間共享SGA內(nèi)存區(qū)域D.可通過`ALTERPLUGGABLEDATABASE`命令切換PDB狀態(tài)答案:C(PDB擁有獨(dú)立的PGA和會話內(nèi)存,SGA中共享的是字典緩存等公共結(jié)構(gòu),但核心數(shù)據(jù)隔離)2.以下哪種表空間類型用于存儲臨時排序數(shù)據(jù)?()A.UNDO表空間B.TEMP表空間C.SYSTEM表空間D.SYSAUX表空間答案:B(TEMP表空間用于臨時SQL操作,如排序、哈希連接)3.執(zhí)行`EXPLAINPLANFORSELECTFROMempWHEREdeptno=10;`后,查看執(zhí)行計劃的正確視圖是()A.V$SQL_PLANB.DBA_EXPLAIN_PLANC.USER_EXPLAIN_PLAND.ALL_EXPLAIN_PLAN答案:C(EXPLAINPLAN提供的計劃存儲在USER_EXPLAIN_PLAN,用戶級視圖)4.關(guān)于OracleIn-Memory特性,正確的是()A.僅支持行存儲表B.自動將所有表加載到內(nèi)存C.通過`INMEMORY`子句標(biāo)記需要加速的表/列D.與PGA內(nèi)存區(qū)域沖突答案:C(In-Memory通過`INMEMORY`屬性指定列或表,支持列存儲,獨(dú)立于SGA)5.事務(wù)中執(zhí)行`UPDATEempSETsal=sal1.1WHEREdeptno=20;`后,未提交時查詢該表,看到的sal值是()A.原始值(未修改前)B.修改后的值(當(dāng)前事務(wù)可見)C.其他事務(wù)提交后的值D.由事務(wù)隔離級別決定答案:D(若隔離級別為READCOMMITTED,當(dāng)前事務(wù)可見自己的修改;若為SERIALIZABLE,需根據(jù)快照判斷)6.以下索引類型中,不支持范圍查詢的是()A.B樹索引B.位圖索引C.函數(shù)索引D.全局分區(qū)索引答案:B(位圖索引適用于低基數(shù)列,不適合范圍查詢,易導(dǎo)致鎖競爭)7.RMAN執(zhí)行`BACKUPINCREMENTALLEVEL1CUMULATIVEDATABASE;`時,備份的數(shù)據(jù)是()A.自最近全備份以來所有變化的數(shù)據(jù)塊B.自最近0級增量備份以來所有變化的數(shù)據(jù)塊C.自最近1級增量備份以來所有變化的數(shù)據(jù)塊D.僅當(dāng)前數(shù)據(jù)庫的結(jié)構(gòu)元數(shù)據(jù)答案:B(CUMULATIVE表示累積,Level1備份自最近0級以來的所有變化塊)8.PL/SQL中,`EXITWHENcursor%NOTFOUND;`的作用是()A.當(dāng)游標(biāo)無數(shù)據(jù)時退出循環(huán)B.當(dāng)游標(biāo)有數(shù)據(jù)時退出循環(huán)C.強(qiáng)制關(guān)閉游標(biāo)D.重置游標(biāo)指針答案:A(%NOTFOUND在游標(biāo)取完數(shù)據(jù)后返回TRUE,觸發(fā)EXIT)9.關(guān)于Oracle云數(shù)據(jù)庫(OCIDatabase),錯誤的是()A.支持自動擴(kuò)展存儲(AutoScaling)B.所有版本均支持多租戶架構(gòu)C.提供備份到對象存儲(ObjectStorage)的功能D.可通過RESTAPI管理實(shí)例答案:B(基礎(chǔ)版可能不支持多租戶,需企業(yè)版許可)10.執(zhí)行`ALTERDATABASEADDLOGFILEGROUP4('/u01/oradata/log4a.dbf','/u01/oradata/log4b.dbf')SIZE512M;`的作用是()A.添加數(shù)據(jù)文件到SYSTEM表空間B.創(chuàng)建新的在線重做日志組C.擴(kuò)展現(xiàn)有重做日志文件大小D.添加歸檔日志路徑答案:B(ADDLOGFILEGROUP用于創(chuàng)建新的重做日志組,包含兩個成員文件)二、填空題(每題2分,共20分)1.Oracle默認(rèn)監(jiān)聽端口號是______。(1521)2.存儲用戶自定義表、索引等對象的默認(rèn)表空間是______。(USERS)3.事務(wù)回滾時,Oracle通過______表空間恢復(fù)數(shù)據(jù)。(UNDO)4.PL/SQL塊的基本結(jié)構(gòu)包括______、執(zhí)行部分、異常處理部分。(聲明部分/DECLARE)5.索引的物理存儲結(jié)構(gòu)主要有B樹、位圖和______。(哈希/函數(shù)索引)6.RMAN中,`CROSSCHECK`命令的作用是______。(驗(yàn)證備份文件的物理存在性)7.查看當(dāng)前會話隔離級別的SQL語句是______。(`SELECTSESSIONPROPERTY('ISOLATION_LEVEL')FROMDUAL;`)8.分區(qū)表的常見類型包括范圍分區(qū)、列表分區(qū)和______。(散列/哈希分區(qū))9.Oracle23c新增的無代碼開發(fā)特性稱為______。(DatabaseActions或低代碼平臺)10.用于監(jiān)控數(shù)據(jù)庫實(shí)時性能的動態(tài)性能視圖前綴是______。(V$)三、簡答題(每題6分,共30分)1.簡述SGA(系統(tǒng)全局區(qū))的主要組成部分及其功能。答案:SGA是Oracle實(shí)例共享內(nèi)存區(qū)域,包含:共享池(SharedPool):存儲SQL/PLSQL解析后的代碼(庫緩存)和數(shù)據(jù)字典緩存;數(shù)據(jù)緩存(DatabaseBufferCache):緩存數(shù)據(jù)塊,減少磁盤I/O;重做日志緩存(RedoLogBuffer):存儲事務(wù)變更的重做記錄,定期寫入重做日志文件;大池(LargePool):可選,用于RMAN備份、并行查詢等大內(nèi)存操作;Java池(JavaPool):若啟用Java支持,存儲Java代碼和數(shù)據(jù)。2.說明索引的使用場景及可能的負(fù)面影響。答案:使用場景:高頻查詢的過濾列(如WHERE子句中的高選擇性列);連接操作的關(guān)聯(lián)列(如JOIN的主鍵/外鍵);排序操作的ORDERBY列(避免全表掃描后的排序)。負(fù)面影響:增加DML操作(INSERT/UPDATE/DELETE)的開銷(需同步更新索引);占用額外存儲(索引文件大小可能接近甚至超過表數(shù)據(jù));錯誤使用(如低基數(shù)列的位圖索引)可能導(dǎo)致鎖競爭或全索引掃描。3.如何分析一條慢SQL的執(zhí)行計劃?列舉關(guān)鍵指標(biāo)。答案:步驟:執(zhí)行`EXPLAINPLANFOR`提供計劃,或通過`AUTO_TRACE`、`DBMS_XPLAN.DISPLAY`查看;關(guān)注操作類型(全表掃描TABLEACCESSFULL、索引掃描INDEXRANGESCAN等);檢查成本(COST)和基數(shù)(CARDINALITY,估計返回行數(shù));分析連接順序(驅(qū)動表選擇是否合理)和連接類型(嵌套循環(huán)、哈希連接、排序合并連接);查看是否有不必要的排序(如隱式排序?qū)е碌腡EMP表空間使用)。關(guān)鍵指標(biāo):COST、OPERATION、OBJECT_NAME、CARDINALITY、BYTES、PARTITION_START。4.事務(wù)的ACID特性在Oracle中的實(shí)現(xiàn)機(jī)制。答案:原子性(Atomicity):通過重做日志(RedoLog)和回滾段(Undo)實(shí)現(xiàn),事務(wù)失敗時利用Undo回滾變更;一致性(Consistency):通過約束(主鍵、外鍵、檢查約束)和事務(wù)隔離保證數(shù)據(jù)邏輯正確;隔離性(Isolation):通過鎖(行鎖、表鎖)和多版本一致性(MVCC,利用Undo提供舊版本數(shù)據(jù))實(shí)現(xiàn)不同隔離級別;持久性(Durability):事務(wù)提交時,重做日志緩存強(qiáng)制寫入磁盤(LGWR進(jìn)程),確保變更持久化。5.RMAN全備份與`EXPDP`導(dǎo)出的主要區(qū)別。答案:備份類型:RMAN是物理備份(復(fù)制數(shù)據(jù)文件、控制文件),`EXPDP`是邏輯備份(導(dǎo)出SQL語句或數(shù)據(jù)行);恢復(fù)粒度:RMAN支持時間點(diǎn)恢復(fù)、表空間恢復(fù),`EXPDP`僅支持按對象(表、用戶)恢復(fù);性能影響:RMAN備份速度快(直接讀取數(shù)據(jù)塊),`EXPDP`需解析數(shù)據(jù)(較慢,尤其大表);適用場景:RMAN用于災(zāi)難恢復(fù),`EXPDP`用于邏輯遷移或跨平臺數(shù)據(jù)轉(zhuǎn)移;存儲格式:RMAN備份是二進(jìn)制文件(專用格式),`EXPDP`是.dmp文件(文本或二進(jìn)制)。四、應(yīng)用題(每題8分,共32分)1.某公司業(yè)務(wù)表`orders`(order_idNUMBER,customer_idNUMBER,order_dateDATE,amountNUMBER)需優(yōu)化查詢:`SELECTorder_id,amountFROMordersWHEREcustomer_id=1234ANDorder_dateBETWEEN'2024-01-01'AND'2024-12-31'ORDERBYorder_date;`。請設(shè)計索引方案并說明理由。答案:建議創(chuàng)建復(fù)合索引`idx_orders_cust_date`,列順序?yàn)椋╟ustomer_id,order_date)。理由:WHERE子句先過濾customer_id(等值查詢),后過濾order_date(范圍查詢),符合B樹索引“左前綴”原則;ORDERBYorder_date與索引中的order_date順序一致,可避免額外排序操作(利用索引有序性);包含查詢所需的order_id和amount(若amount也需索引覆蓋,可擴(kuò)展索引為(customer_id,order_date,amount),但需權(quán)衡存儲成本)。2.生產(chǎn)環(huán)境中一條更新語句`UPDATEemployeesSETsalary=salary1.05WHEREdepartment_id=50;`執(zhí)行超時,監(jiān)控顯示等待事件為`dbfilesequentialread`。請分析可能原因及優(yōu)化方法。答案:可能原因:表`employees`在department_id列上無索引,導(dǎo)致全表掃描,I/O消耗大;數(shù)據(jù)塊分散(高碎片),單次讀取多個塊,增加I/O時間;事務(wù)未提交,大量行鎖導(dǎo)致后續(xù)更新阻塞(但等待事件不符)。優(yōu)化方法:為department_id創(chuàng)建索引(如`idx_emp_dept`),將全表掃描轉(zhuǎn)為索引范圍掃描+行訪問;分析表碎片(`ANALYZETABLEemployeesLISTCHAINEDROWS;`),重建表或索引(`ALTERTABLEemployeesMOVE;`);分批更新(如每次更新1000行,提交后繼續(xù)),減少單次事務(wù)鎖持有時間和I/O量;檢查執(zhí)行計劃(`EXPLAINPLAN`),確認(rèn)是否使用索引,若未使用可能因統(tǒng)計信息過時,需更新統(tǒng)計(`DBMS_STATS.GATHER_TABLE_STATS`)。3.某系統(tǒng)需實(shí)現(xiàn)“用戶注冊時,若手機(jī)號已存在則拒絕插入”的業(yè)務(wù)規(guī)則。請設(shè)計觸發(fā)器實(shí)現(xiàn)該邏輯(表結(jié)構(gòu):users(user_idNUMBERPRIMARYKEY,mobileVARCHAR2(11)UNIQUE,reg_dateDATE))。答案:創(chuàng)建行級觸發(fā)器,在INSERT前檢查手機(jī)號是否重復(fù):```plsqlCREATEORREPLACETRIGGERtrg_check_mobileBEFOREINSERTONusersFOREACHROWDECLAREv_countNUMBER;BEGINSELECTCOUNT()INTOv_countFROMusersWHEREmobile=:NEW.mobile;IFv_count>0THENRAISE_APPLICATION_ERROR(-20001,'手機(jī)號已注冊');ENDIF;END;/```說明:觸發(fā)器在插入前檢查新手機(jī)號是否存在,若存在則拋出自定義錯誤(-20001~-20999為用戶自定義錯誤碼)。需注意:若表已有UNIQUE約束,觸發(fā)器可作為補(bǔ)充驗(yàn)證,但需避免重復(fù)檢查(可能影響性能)。4.數(shù)據(jù)庫性能監(jiān)控發(fā)現(xiàn),每天18:00~20:00期間CPU利用率持續(xù)90%以上,主要SQL為`SELECTFROMsalesWHEREsale_timeBETWEENTRUNC(SYSDATE)ANDSYSDATE;`(查詢當(dāng)日銷售數(shù)據(jù))。請?zhí)岢鰞?yōu)化方案。答案:優(yōu)化方案:索引優(yōu)化:在sale_time列創(chuàng)建索引(`idx_sales_time`),將全表掃描轉(zhuǎn)為索引范圍掃描;分區(qū)表:按sale_time做范圍分區(qū)(如每日分區(qū)),查詢時僅掃描當(dāng)日分區(qū)(分區(qū)剪枝);物化視圖:創(chuàng)建物化視圖`mv_daily_sales`,按日匯總數(shù)據(jù)(若查詢允許非實(shí)時);統(tǒng)計信息:更新表統(tǒng)計信息(`DBMS_STATS`),確保優(yōu)化器選擇正確索引;并行查詢:若數(shù)據(jù)量極大,啟用并行查詢(`PARALLEL`提示),但需評估CPU負(fù)載;緩存優(yōu)化:調(diào)整數(shù)據(jù)緩存大?。╜DB_CACHE_SIZE`),或設(shè)置該表為“熱表”(`CACHE`提示),增加緩存命中率。五、編程題(每題9分,共36分)1.編寫存儲過程`p_get_emp_page`,實(shí)現(xiàn)員工表分頁查詢(輸入:部門IDdept_id,頁碼page_num,每頁行數(shù)page_size;輸出:員工信息集合)。答案:```plsqlCREATEORREPLACEPROCEDUREp_get_emp_page(p_dept_idINNUMBER,p_page_numINNUMBER,p_page_sizeINNUMBER,p_emp_cursorOUTSYS_REFCURSOR)ASv_startNUMBER:=(p_page_num1)p_page_size+1;v_endNUMBER:=p_page_nump_page_size;BEGINOPENp_emp_cursorFORSELECTFROM(SELECTe.,ROWNUMrnFROMempeWHEREe.deptno=p_dept_idORDERBYe.hiredate)WHERErnBETWEENv_startANDv_end;END;/```調(diào)用示例:```plsqlVARv_curREFCURSOR;EXECp_get_emp_page(20,2,10,:v_cur);PRINTv_cur;```2.編寫函數(shù)`f_calculate_annual_sal`,計算員工年薪(年薪=月薪12+獎金,獎金為NULL時視為0;稅率:年薪≤12萬稅率3%,12萬~25萬部分10%,25萬以上部分20%)。答案:```plsqlCREATEORREPLACEFUNCTIONf_calculate_annual_sal(p_empnoINNUMBER)RETURNNUMBERASv_salemp.sal%TYPE;v_commm%TYPE;v_annual_salNUMBER;v_taxNUMBER:=0;BEGINSELECTsal,NVL(comm,0)INTOv_sal,v_commFROMempWHEREempno=p_empno;v_annual_sal=v_sal12+v_comm;-計算稅率IFv_annual_sal<=120000THENv_tax:=v_annual_sal0.03;ELSIFv_annual_sal<=250000THENv_tax:=1200000.03+(v_annual_sal120000)0.1;ELSEv_tax:=1200000.03+1300000.1+(v_annual_sal250000)0.2;ENDIF;RETURNv_annual_salv_tax;END;/```3.觸發(fā)器`trg_emp_audit`,當(dāng)`emp`表的`sal`字段更新時,將舊值和新值記錄到審計表`emp_audit`(empnoNUMBER,old_salNUMBER,new_salNUMBER,update_timeDATE)。答案:```plsqlCREATEOR
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院消防安全工作年終總結(jié)報告
- 林業(yè)發(fā)展與投資
- 2026年建筑行業(yè)綠色建材發(fā)展報告及裝配式建筑創(chuàng)新報告
- 課件大綱范例
- 體育課安全常識課件
- 初中數(shù)學(xué)智能題庫系統(tǒng)學(xué)習(xí)資源個性化定制研究課題報告教學(xué)研究課題報告
- 課件大小限制
- 2025年智能照明傳感器五年發(fā)展與應(yīng)用場景分析報告
- 春節(jié)前安全交底培訓(xùn)課件
- 幼兒園安全教案吃魚課件
- 2026年廣西貴港市華盛集團(tuán)新橋農(nóng)工商有限責(zé)任公司招聘備考題庫及答案詳解1套
- 陜西能源職業(yè)技術(shù)學(xué)院2026年教師公開招聘備考題庫完整答案詳解
- GB/T 1301-2025鑿巖釬桿用中空鋼
- DB37-T 4733-2024預(yù)制艙式儲能電站設(shè)計規(guī)范
- 動火作業(yè)施工方案5篇
- 2024年重慶市優(yōu)質(zhì)企業(yè)梯度培育政策解讀學(xué)習(xí)培訓(xùn)課件資料(專精特新 專精特新小巨人中小企業(yè) 注意事項(xiàng))
- 老年人高血壓的護(hù)理
- 糧油產(chǎn)品授權(quán)書
- 責(zé)任督學(xué)培訓(xùn)課件
- 關(guān)于安吉物流市場的調(diào)查報告
- 抑郁病診斷證明書
評論
0/150
提交評論