首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 開發面試題全攻略:SQL 調優、架構原理、備份恢復、系統管理五大類精選

     編輯:Oracle 資料庫基礎

面試 Oracle 開發或 DBA 職位,扎實的理論基礎與實戰經驗是敲門磚。本文整理高頻面試題,按 SQL Tuning、資料庫基本概念、備份恢復、系統管理、綜合開放題 五大類別分類,助你查漏補缺、臨陣磨槍。

一、SQL Tuning 類 —— 核心硬功夫

  1. 列舉表連接方式(Nested Loop、Hash Join、Sort Merge Join)及適用場景。
  2. 無第三方工具下,如何查看執行計畫?(EXPLAIN PLAN、DBMS_XPLAN.DISPLAY、AUTOTRACE、V$SQL_PLAN)。
  3. CBO 與 RBO 差異?如何啟用/控制 CBO?(統計資訊、OPTIMIZER_MODE、Hint)。
  4. 如何定位高消耗 SQL?(V$SQL、V$SQLAREA、AWR/Statspack 報告、SQL_TRACE + TKPROF)。
  5. 如何追蹤特定 Session 的 SQL?(DBMS_MONITOR、DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION、EVENT 10046)。
  6. SQL 調整最關注什麼?(邏輯讀/一致性獲取、執行計畫存取路徑、索引使用效率)。
  7. 索引結構(B-Tree、Bitmap)、對 DML 影響、為何提升查詢效能?
  8. 用索引查詢一定較快嗎?(否:選擇率高、隱式轉換、函數運算導致索引失效、全表掃描更優等)。
  9. 綁定變數優缺點?(優:共用 Cursor、減少 Hard Parse;缺:窺探導致計畫不穩、直方圖誤判)。
  10. 如何固定執行計畫?(SQL Profile、SQL Plan Baseline/Stored Outline、Hint、OPTIMIZER_USE_SQL_PLAN_BASELINES)。
  11. 8i/9i 排序記憶體與臨時表空間調整差異?(SORT_AREA_SIZE vs PGA_AGGREGATE_TARGET、WORKAREA_SIZE_POLICY)。
  12. 分頁查詢:表 T(a,b,c,d) 依 c 排序取 21-30 筆 SQL 寫法(ROW_NUMBER() OVER 或巢狀 ROWNUM 寫法)。

二、資料庫基本概念類 —— 根基要穩

  1. PCTUSED / PCTFREE 含義與作用(空間管理、行遷移/鏈接控制)。
  2. Table / Segment / Extent / Block 階層關係。
  3. Tablespace 與 Datafile 關係(邏輯 vs 物理、一對多)。
  4. LMT (Locally Managed Tablespace) vs DMT、ASSM 特點(位圖管理、自動段空間、消除自由鏈表競爭)。
  5. Rollback Segment / Undo 作用(讀一致性、交易回滾、Flashback)。
  6. Redo Log 作用(崩潰恢復、前滾、Data Guard 同步)。
  7. SGA 主要組件與功能(Shared Pool、DB Buffer Cache、Redo Log Buffer、Large Pool、Java Pool、Streams Pool)。
  8. Oracle 背景進程(PMON、SMON、DBWn、LGWR、CKPT、ARCn、RECO、LMS 等)職責。

三、備份恢復類 —— 最後防線

  1. 備份分類:冷/熱、完整/增量、邏輯/物理、RMAN/用戶管理。
  2. 歸檔模式含義與啟用條件。
  3. 表誤 DROP 後,有完整歸檔備份如何恢復?(時間點恢復 PITR、FLASHBACK TABLE ... TO BEFORE DROP、TS PITR、邏輯導入)。
  4. RMAN 特點(塊級備份、壓縮、加密、腳本化、目錄庫、增量合併)。
  5. Data Guard / Standby 特點(實體/邏輯/快照、角色切換、保護模式)。
  6. 50G 庫、日增 5G 歸檔,RTO 較短備份策略?(RMAN 增量累積/差異、影子複製/快照備份、Data Guard 延遲應用、Flashback Database)。

四、系統管理類 —— 實戰經驗值

  1. 系統效能問題診斷思路(OS 層 → 實例層 → SQL 層 → 應用層,自上而下/自下而上結合)。
  2. I/O、CPU、效能診斷方法(iostat/sar/vmstat、AWR/ASH/Statspack、V$SYSTEM_EVENT/V$SESSION_WAIT)。
  3. Statspack 認知(安裝、快照、報告分析、與 AWR 差異)。
  4. 大表建索引考量與降低影響(ONLINE、PARALLEL、NOLOGGING、離線建立再交換、分區索引、維護窗口)。
  5. RAID 10 vs RAID 5 認知(寫入效能、容錯、成本、重建時間、適用場景)。

五、綜合開放題 —— 展現思維深度

  1. 最擅長 Oracle 哪塊?為何?
  2. 喜歡 Oracle 嗎?常逛哪些技術社群?
  3. 覺得 Oracle 最有趣/最難的部分是?
  4. 為何選擇 DBA/開發這條路?

備戰建議

背誦題目不如理解原理。建議:

  • 每題嘗試用「原理 → 現象 → 工具 → 解決 → 權衡」結構答題。
  • 準備 2-3 個實戰案例(如:某 SQL 從 10 秒優化到 0.1 秒、某次故障恢復經歷)。
  • 承認不知者說「不確定,但我會從這幾個方向排查...」,誠實勝過硬掰。

祝面試順利,Offer 到手!

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved