- 相關(guān)推薦
oracle數(shù)據(jù)庫筆試題
1. 數(shù)據(jù)庫 數(shù)據(jù)庫切換日志的時候,為什么一定要發(fā)生檢查點?這個檢查點有什么意義? 答:觸發(fā) dbwr 的執(zhí)行,dbwr 會把和這個日志相關(guān)的所有臟隊列寫到數(shù)據(jù)文件里,縮短實例恢復(fù)所需要的 時間。
2. 表空間管理 管理方式有哪幾種,各有什么優(yōu)劣. 管理 答:字典管理方式和本地管理方式,本地管理方式采用位圖管理 extent,減少字典之間的競爭,同時避免了 碎片. 本地管理表空間與字典管理表空間相比,其優(yōu)點如下:
1).減少了遞歸空間管理;
2).系統(tǒng)自動管理 extents 大小或采用統(tǒng)一 extents 大小;
3).減少了數(shù)據(jù)字典之間的競爭;
4).不產(chǎn)生回退信息;
5).不需合并相鄰的剩余空間;
6).減少了空間碎片;
7).對臨時表空間提供了更好的管理.
3. 本地索引與全局索引的差別與適用情況. 答:對于 local 索引,每一個表分區(qū)對應(yīng)一個索引分區(qū),當(dāng)表的分區(qū)發(fā)生變化時,索引的維護由 Oracle 自動 進行.對于 global 索引,可以選擇是否分區(qū),而且索引的分區(qū)可以不與表分區(qū)相對應(yīng).當(dāng)對分區(qū)進行維護 操作時,通常會導(dǎo)致全局索引的 INVALDED,必須在執(zhí)行完操作后 REBUILD.Oracle9i 提供了 UPDATE GLOBAL INDEXES 語句,可以使在進行分區(qū)維護的同時重建全局索引.
4. 一個表 a varchar2(
1),b number(
1),c
2),有 100000 條記錄,創(chuàng)建 B-Tree 索引在字段 a 上,那么 表與索引誰大?為什么? 答:這個要考慮到 rowid 所占的字節(jié)數(shù),假設(shè) char 總是占用 2 字節(jié)的情況,比較 rowid,另外,table 和 index 在 segment free block 的管理也有差別.
5. Oracle9i 的 data guard 有幾種模式,各有什么差別. 答:三種模式: 最大性能(maximize performance):這是 data guard 默認的保護模式.primay 上的事務(wù) commit 前不需要從 standby 上收到反饋信息.該模式在 primary 故障時可能丟失數(shù)據(jù),但 standby 對 primary 的性能影響最 小. 最大可用(maximize availability):在正常情況下,最大可用模式和最大保護模式一樣;在 standby 不可用時, 最大可用模式自動最大性能模式,所以 standby 故障不會導(dǎo)致 primay 不可用.只要至少有一個 standby 可
用的情況下,即使 primarydown 機,也能保證不丟失數(shù)據(jù). 最大保護(maximize protection):最高級別的保護模式.primay 上的事務(wù)在 commit 前必須確認 redo 已經(jīng)傳 遞到至少一個 standby 上,如果所有 standby 不可用,則 primary 會掛起.該模式能保證零數(shù)據(jù)丟失.
6. 執(zhí)行計劃是什么,查看執(zhí)行計劃一般有哪幾種方式. 答:執(zhí)行計劃是數(shù)據(jù)庫內(nèi)部的執(zhí)行步驟: set autotrace on select * from table alter session set event 10046 trace name context forever,level 12 ; SYS.DBMS\_SYSTEM.SET\_SQL\_TRACE\_IN\_SESSION=(SID,SERIAL#,TRUE); 一般采用 pl/sql developer,再加個 explain plan , v$sql\_plan.
7. 簡單描述一下 nest loop 與 hash join 的差別. 答:nest loop 適用于返回結(jié)果比較小的情況. for in
1...n loop 對小表進行遍歷 根據(jù)小表的結(jié)果遍歷大表(大表需要索引) end loop hash join 適用在返回大結(jié)果集的情況.
8. db file sequential read 與 db file scattered read 等待的差別,如果以上等待比較多,證明了什么問題? 答:db file sequential read-DB 文件順序讀取,這一事件通常顯示與單個數(shù)據(jù)塊相關(guān)的讀取操作(如索引讀 取).如果這個等待事件比較顯著,可能表示在多表連接中,表的連接順序存在問題,可能沒有正確的使用 驅(qū)動表;或者可能說明不加選擇地進行索引.在大多數(shù)情況下我們說,通過索引可以更為快速的獲取記錄, 所以對于一個編碼規(guī)范,調(diào)整良好的數(shù)據(jù)庫,這個等待很大是很正常的.但是在很多情況下,使用索引并 不是最佳的選擇,比如讀取較大表中大量的數(shù)據(jù),全表掃描可能會明顯快于索引掃描,所以在開發(fā)中我們 就應(yīng)該注意,對于這樣的查詢應(yīng)該進行避免使用索引掃描. db file sequential read-DB 檔分散讀取,這種情況通常顯示與全表掃描相關(guān)的等待. 當(dāng)數(shù)據(jù)庫進行全表掃時, 基于性能的考慮,數(shù)據(jù)會分散(scattered)讀入 Buffer Cache.如果這個等待事件比較顯著,可能說明對于 某些全表掃描的表,沒有創(chuàng)建索引或者沒有創(chuàng)建合適的索引,我們可能需要檢查這些數(shù)據(jù)表已確定是否進 行了正確的設(shè)置.然而這個等待事件不一定意味著性能低下,在某些條件下 Oracle 會主動使用全表掃描 來替換索引掃描以提高性能, 這和訪問的數(shù)據(jù)量有關(guān), CBO 下 Oracle 會進行更為智能的選擇, RBO 在 在 下 Oracle 更傾向于使用索引.當(dāng)這個等待事件比較顯著時,可以結(jié)合 v$session\_longops 動態(tài)性能視圖
來進行診斷,該視圖中記錄了長時間(運行時間超過 6 秒的)運行的事物,可能很多是全表掃描操作(不管怎 樣,這部分信息都是值得我們注意的).
9. library cache pin 與 library cache lock 是什么地方的等待事件,一般說明什么問題? 答:"LIBRARY CACHE PIN"通常是發(fā)生在編譯或重新編譯 PL/SQL,VIEW,TYPES 等 object 時.
10. 在一個 24*7 的應(yīng)用上,需要把一個訪問量很大的 1000 萬以上數(shù)據(jù)級別的表的普通索引(a,b)修改成唯 一約束(a,b,c),你一般會選擇怎么做,請說出具體的操作步驟與語句. 答:不能確定,是否可以采用先建索引后建約束: create index idx\_w1 on w\_1 (a,b,c) online ; alter table w\_1 add constraint uni\_w1 unique (a,b,c) novalidate;
11. 如果一個 linux 上的 oracle 數(shù)據(jù)庫系統(tǒng)突然變慢,你一般從哪里去查找原因. 答:
1).用 vmstat,iostat 命令查看系統(tǒng)的負載(I/O 讀寫是否嚴重,CPU 是否空閑).
2).用 top 工具查看有哪些進程 CPU 占用率高;
3). 查詢 v$session\_wait 和 v$system\_event 數(shù)據(jù)字典,找出當(dāng)前比較嚴重的等待事件,并試圖優(yōu)化影響性 能的 SQL 語句.
12. 說明一下對 raid5 與 raid01/10 的認識. 答:raid5 采用校驗信息,硬盤的利用率 n-1/n, 以 RAID5(4D+P)為例子來講,使用 4 塊磁盤存放數(shù)據(jù)位,使 用 1 塊磁盤存放校驗位.其基本原理是這樣的:根據(jù)條帶化的數(shù)據(jù) 4D(使用四位數(shù)據(jù))生成一位的校驗信息, 存放在第五塊磁盤中. raid10 先采用先鏡像在進行條帶化,是最高效的硬盤利用方式,硬盤的利用率 50\%,是一個 Raid 0 與 Raid1 的組合體,它是利用奇偶校驗實現(xiàn)條帶集鏡像,所以它繼承了 Raid0 的快速和 Raid1 的安全.
13. 列舉 5 個 10g 的新特性. 答:
1).自動共享內(nèi)存(SGA)管理
2).自動存儲管理(ASM)
3).ADDM 和查詢優(yōu)化器
4).閃回表(flashback table)
5).Data Pump(expdp,impdp)
14.char 與 varchar 的區(qū)別 char 是固定長度的字符串;varchar 是可變長度的字符串
【oracle數(shù)據(jù)庫筆試題】相關(guān)文章:
oracle 技術(shù)筆試題02-18
益和電力Oracle筆試題分享11-21
Oracle認證11-14
數(shù)據(jù)庫常見筆試面試題11-11
Oracle筆試,攢RP中02-18
Oracle筆試,分享筆試內(nèi)容11-21
Oracle面試問題 技術(shù)篇11-19
迅雷JAVA廣州站二筆筆試題目分享11-21