DBA面試題集----我要好好學習

cosio發表於2007-05-12

(1)資料庫切換日誌的時候,為什麼一定要發生檢查點?這個檢查點有什麼意義?
觸發dbwr的執行,dbwr會把和這個日誌相關的所有髒佇列寫到資料檔案去,減少資料庫崩潰的時的恢復時間。

(2)表空間管理方式有哪幾種,各有什麼優劣。
字典管理方式和自動管理方式,自動管理方式採用點陣圖管理extent,減少字典之間的競爭,同時避免了碎片

(3)本地索引與全域性索引的差別與適用情況。
本地索引適用於sql語句種限定一個範圍的查詢比如時間之類的, 全域性索引適用於在全部記錄中查詢,比如要查詢一個手機號之類的。
全域性索引總可能出現unused的情況,需要重建

(4)一個表a varchar2(1),b number(1),c char(2),有100000條記錄,建立B-Tree索引在欄位a上,那麼表與索引誰大?為什麼?
這個要考慮到rwoid所佔的位元組數,假設char總是佔用2位元組的情況,比較rowid和3

(5)9i的data guard有幾種模式,各有什麼差別。
三種模式
maxmize performance 採用非同步傳送
maxmize availablity 允許採用非同步傳送,在兩者之間搖擺
maxmize protection 採用同步傳送
個人以為採用maxmize performance好一點,對主資料庫影響比較小

(6)執行計劃是什麼,檢視執行計劃一般有哪幾種方式。
執行計劃是資料庫內部的執行步驟
set autotrace on
select * from table
alter session set event '10046 trace name context forever,level 12 '
一般採用pl/sql developer,其它的比較少用,記不住

(7)簡單描述一下nest loop與hash join的差別。
nest loop適用於返回結果比較小的情況。
for in 1...n loop
對小表進行遍歷
根據小表的結果遍歷大表(大表需要索引)
end loop
這個在資料庫高效設計裡面有很好的解釋,一時還寫不出來

hash join適用在返回大結果集的情況

(8)db file sequential read與db file scattered read等待的差別,如果以上等待比較多,證明了什麼問題?
db file sequential read指的是需要一個但當前不在sga中的塊,等待從磁碟中讀取。db file scattered read需要多個連續的資料庫引起等待。
db file sequential read出現大量的等待,或許不是個問題。如果這兩個事件等待比較多,根據p1,p2,p3以及sid檢查sql語句,是否有調優的可能

l(9)ibrary cache pin與library cache lock是什麼地方的等待事件,一般說明什麼問題?
一般出現在對package,procedure進行編譯,add contraint的時候。

(10)在一個24*7的應用上,需要把一個訪問量很大的1000萬以上資料級別的表的普通索引(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資料庫系統突然變慢,你一般從哪裡去查詢原因。
先top看看是哪些程式,看看這些程式在做什麼
看看v$session_wait


(12)說明一下對raid5與raid01/10的認識。
raid5採用校驗資訊,硬碟的利用率n-1/n, raid10先採用先映象在進行條帶化,是最高效的硬碟利用方式,硬碟的利用率50%

(13)列舉5個10g的新特性
1.rename tablespace
2.新的em
3.asm
4.bigfile tablespace
5.真正的增量rman
6.flashback table
7.expdp、impdp

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/101162/viewspace-914718/,如需轉載,請註明出處,否則將追究法律責任。

相關文章