這些問題,你能回答多少
編者注:這些問題來著阿里巴巴DBA面試,你能回答多少呢?也許你能回答出來,距離DBA,你又進(jìn)了一步。下面也請你來試試吧,問題后面會附上該題的一份答案,不一定完全正確,僅供參考。
***輪:SQL tuning 類
1:列舉幾種表連接方式
答:merge join,hash join,nested loop
2:不借助第三方工具,怎樣查看sql的執(zhí)行計劃?
答:sqlplus、set autotrace ...、utlxplan.sql 創(chuàng)建 plan_table 表
3:如何使用CBO,CBO與RULE的區(qū)別?
答:在初始化參數(shù)里面設(shè)置 optimizer_mode=choose/all_rows/first_row 等可以使用 cbo。rbo會選擇不合適的索引,cbo需要統(tǒng)計信息。
4:如何定位重要(消耗資源多)的SQL?
答:根據(jù)v$sqlarea 中的邏輯讀/disk_read。以及尋找CPU使用過量的session,查出當(dāng)前session的當(dāng)前SQL語句,或者:監(jiān)控WIN平臺Oracle的運行
5:如何跟蹤某個session的SQL?
答:先找出對應(yīng)的’sid,serial’,然后調(diào)用system_system.set_sql_trace_in_session(sid,serial,true);參考:跟蹤某個會話
6:SQL調(diào)整最關(guān)注的是什么?
答:邏輯讀。IO量
7:說說你對索引的認(rèn)識(索引的結(jié)構(gòu)、對dml影響、對查詢影響、為什么提高查詢性能)
答:默認(rèn)的索引是b-tree。對insert的影響:分裂,要保證tree的平衡。對delete的影響:刪除行的時候要標(biāo)記改節(jié)點為刪除。對update的影響:如果更新表中的索引字段,則要相應(yīng)的更新索引中的鍵值。查詢中包含索引字段的鍵值和行的物理地址。
8:使用索引查詢一定能提高查詢的性能嗎?為什么?
答:不能。如果返回的行數(shù)目較大,使用全表掃描的性能較好。
9:Array:綁定變量是什么?綁定變量有什么優(yōu)缺點?
答:通俗的說,綁定變量就是變量的一個占位符,使用綁定變量可以減少只有變量值不同的語句的解析。
10:如何穩(wěn)定(固定)執(zhí)行計劃?
答:使用stored outline。
11:和排序相關(guān)的內(nèi)存在8i和Arrayi分別怎樣調(diào)整,臨時表空間的作用是什么?
答:8i:使用sort_area_size,hash_area_size,每個session分配相同的值,不管有無使用。Arrayi:使用pga_aggregate來統(tǒng)一管理。臨時表空間的作用:在sort_area_size中不能完成的部分在臨時表空間完成,臨時表空間在重建索引,創(chuàng)建臨時表等都要用到。還有hash join不能完成的也在臨時表空間中做。
12:存在表T(a,b,c,d),要根據(jù)字段c排序后取第21-30條記錄顯示,請給出sql
- select a,b,c,d from (select a,b,c,d from T order by c) where rownum<=30
- minus
- select a,b,c,d from (select a,b,c,d from T order by c) where rownum <=20;
- 或者:
- select * from (select rownum rn,a.* from (select a,b,c,d from T order by c) a )where rn between 21 and 30;
#p#
第二輪:數(shù)據(jù)庫基本概念類
1:pctused and pctfree 表示什么含義有什么作用?
答:表示數(shù)據(jù)塊什么時候移入和移出freelist。pctused:如果數(shù)據(jù)塊的使用率小于pctused的值,則該數(shù)據(jù)塊重新加入到fresslist中。ctfree:如果數(shù)據(jù)塊的使用率高于pctfree的值,則該數(shù)據(jù)塊從freelist中移出。
2:簡單描述table / segment / extent / block之間的關(guān)系
答:一個table至少是一個segment,如果分區(qū)表,則每個分區(qū)是一個segment,table可以看成是一個邏輯上的概 念,segment可以看成是這個邏輯概念的物理實現(xiàn);segment由一個或多個extents組成,segment不可以跨表空間但可以跨數(shù)據(jù)文件;extent由多個連續(xù)的blocks組成,不可以跨數(shù)據(jù)文件;block由1-多個os塊組成,是oracle i/o的最小存儲單位。
3:描述tablespace和datafile之間的關(guān)系
答:tablespace是邏輯上的概念,datafile是物理上的概念。一個tablespace可以由多個datafile組成,一個datafile不能跨越多個tablespace。
4:本地管理表空間和字典管理表空間的特點,ASSM有什么特點?
答:一個使用freelist管理,一個使用位圖管理。
5:回滾段的作用是什么?
答:保存數(shù)據(jù)的前像,保證數(shù)據(jù)讀取的時間點一致性。Oracle里數(shù)據(jù)的多版本特性就是通過回滾段來實現(xiàn)的,正因為此,Oracle數(shù)據(jù)庫實現(xiàn)了讀寫不競爭的性能優(yōu)勢!
6:日志的作用是什么?
答:記錄對數(shù)據(jù)庫的操作,便于恢復(fù)。
7:SGA主要有那些部分,主要作用是什么?
答:db_cache(緩存數(shù)據(jù)塊),shared_pool(緩存sql,執(zhí)行計劃,數(shù)據(jù)字典信息 等),large_pool(MTS模式、parallel 、rman等要用到),java pool(java程序如SQLJ存儲過程運行時要用到)。
8:Oracle系統(tǒng)進(jìn)程主要有哪些,作用是什么?
答:smon(合并空間,實例恢復(fù)),pmon(清理失敗的進(jìn)程),歸檔進(jìn)程(負(fù)責(zé)在日志切換的時候歸 檔日志文件),lgmr(日志書寫器進(jìn)程,負(fù)責(zé)寫日志),ckpt(檢查點進(jìn)程,觸發(fā)檢查點),dbwr(數(shù)據(jù)庫寫入器,負(fù)責(zé)把數(shù)據(jù)寫入導(dǎo) datafile)。
#p#
第三輪:備份恢復(fù)類
1:備份如何分類?
答:邏輯備份(exp)與物理備份?;蛘呃鋫浞菖c熱備份。
2:歸檔是什么含義?
答:把日志文件放到另一個地方。
3:如果一個表在2004-08-04 10:30:00 被drop,在有完善的歸檔和備份的情況下,如何恢復(fù)?
答:拷貝備份,recover database until time 2004-08-04 10:30:00 alter database open resetlogs;
4:rman是什么,有何特點?
答:rman叫恢復(fù)管理器。特點很多??梢栽诰€備份,到少目標(biāo)數(shù)據(jù)庫是mount狀態(tài)。1)熱備份。2)可以存儲腳本。3)可以增量備份。4)自動管理備份集
5:standby的特點
答:利用傳輸重做日志來達(dá)到同步的目的??梢栽O(shè)定多個保護級別,Arrayi后支持邏輯standbyDB。
6:對于一個要求恢復(fù)時間比較短的系統(tǒng)(數(shù)據(jù)庫50G,每天歸檔5G),你如何設(shè)計備份策略
答:每天一個全備份。
#p#
第四輪:系統(tǒng)管理類
1:對于一個存在系統(tǒng)性能的系統(tǒng),說出你的診斷處理思路
答:做一個statspack,根據(jù)top 5,system load,top sql等來做相應(yīng)的調(diào)整。
2:列舉幾種診斷IO、CPU、性能狀況的方法
答:hp-unix:iostat -x 1 5;top/vmstat/glance
3:對statspack有何認(rèn)識?
答:一個性能診斷工具而已,其本質(zhì)就是在兩個時間點采樣兩個系統(tǒng)數(shù)據(jù)。(動態(tài)性能視圖),然后根據(jù)兩個snapshot,產(chǎn)生一個報告。
4:如果系統(tǒng)現(xiàn)在需要在一個很大的表上創(chuàng)建一個索引,你會考慮那些因素,如何做以盡量減小對應(yīng)用的影響
答:1)增大sort_area_size(8i)/pga_aggregate_target(Arrayi)值。2)如果表有分區(qū)(一般大表都要用到分區(qū)的),按分區(qū)逐個建索引,如果是本地索引的話。3)系統(tǒng)空閑的時候建。
5:對raid10 和raid5有何認(rèn)識?
答:raid10是先鏡像后條帶,適合對寫入速度要求較高的數(shù)據(jù)庫系統(tǒng),特別是online redolog文件,raid5適合大部分的數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)倉庫系統(tǒng),讀性能優(yōu)于寫性能。
原文鏈接:http://www.cnblogs.com/Lostman/archive/2011/05/09/2041302.html
【編輯推薦】