這些問題來着阿里巴巴DBA面試

這些問題來着阿里巴巴DBA面試,你能回答多少呢?也許你能回答出來,距離DBA,你又進了一步。下面也請你來試試吧,問題後面會附上該題的一份答案,不必定徹底正確,僅供參考。 java

第一輪:SQL tuning 類 ios

1:列舉幾種錶鏈接方式 面試

答:merge join,hash join,nested loop sql

2:不借助第三方工具,怎樣查看sql的執行計劃? 數據庫

答:sqlplus、set autotrace …、utlxplan.sql 建立 plan_table 表 緩存

3:如何使用CBO,CBO與RULE的區別? session

答:在初始化參數裏面設置 optimizer_mode=choose/all_rows/first_row 等可使用 cbo。rbo會選擇不合適的索引,cbo須要統計信息。 oracle

4:如何定位重要(消耗資源多)的SQL? 工具

答:根據v$sqlarea 中的邏輯讀/disk_read。以及尋找CPU使用過量的session,查出當前session的當前SQL語句,或者:監控WIN平臺Oracle的運行 oop

5:如何跟蹤某個session的SQL?

答:先找出對應的’sid,serial’,而後調用system_system.set_sql_trace_in_session(sid,serial,true);參考:跟蹤某個會話

6:SQL調整最關注的是什麼?

答:邏輯讀。IO量

7:說說你對索引的認識(索引的結構、對dml影響、對查詢影響、爲何提升查詢性能)

答:默認的索引是b-tree。對insert的影響:分裂,要保證tree的平衡。對delete的影響:刪除行的時候要標記改節點爲刪除。對update的影響:若是更新表中的索引字段,則要相應的更新索引中的鍵值。查詢中包含索引字段的鍵值和行的物理地址。

8:使用索引查詢必定能提升查詢的性能嗎?爲何?

答:不能。若是返回的行數目較大,使用全表掃描的性能較好。

9:Array:綁定變量是什麼?綁定變量有什麼優缺點?

答:通俗的說,綁定變量就是變量的一個佔位符,使用綁定變量能夠減小隻有變量值不一樣的語句的解析。

10:如何穩定(固定)執行計劃?

答:使用stored outline。

11:和排序相關的內存在8i和Arrayi分別怎樣調整,臨時表空間的做用是什麼?

答:8i:使用sort_area_size,hash_area_size,每一個session分配相同的值,無論有無使用。Arrayi:使用 pga_aggregate來統一管理。臨時表空間的做用:在sort_area_size中不能完成的部分在臨時表空間完成,臨時表空間在重建索引,建立臨時表等都要用到。還有hash join不能完成的也在臨時表空間中作。

12:存在表T(a,b,c,d),要根據字段c排序後取第21-30條記錄顯示,請給出sql

  • select a,b,c,d from (select a,b,c,d from T order by c) where rownum< li>
  • minus
  • select a,b,c,d from (select a,b,c,d from T order by c) where rownum < li>
  • 或者:
  • select * from (select rownum rn,a.* from (select a,b,c,d from T order by c) a )where rn between 21 and 30;

第二輪:數據庫基本概念類

1:pctused and pctfree 表示什麼含義有什麼做用?

答:表示數據塊何時移入和移出freelist。pctused:若是數據塊的使用率小於pctused的值,則該數據塊從新加入到fresslist中。ctfree:若是數據塊的使用率高於pctfree的值,則該數據塊從freelist中移出。

2:簡單描述table / segment / extent / block之間的關係

答:一個table至少是一個segment,若是分區表,則每一個分區是一個segment,table能夠當作是一個邏輯上的概 念,segment能夠當作是這個邏輯概念的物理實現;segment由一個或多個extents組成,segment不能夠跨表空間但能夠跨數據文件;extent由多個連續的blocks組成,不能夠跨數據文件;block由1-多個os塊組成,是oracle i/o的最小存儲單位。

3:描述tablespace和datafile之間的關係

答:tablespace是邏輯上的概念,datafile是物理上的概念。一個tablespace能夠由多個datafile組成,一個datafile不能跨越多個tablespace。

4:本地管理表空間和字典管理表空間的特色,ASSM有什麼特色?

答:一個使用freelist管理,一個使用位圖管理。

5:回滾段的做用是什麼?

答:保存數據的前像,保證數據讀取的時間點一致性。Oracle裏數據的多版本特性就是經過回滾段來實現的,正由於此,Oracle數據庫實現了讀寫不競爭的性能優點!

6:日誌的做用是什麼?

答:記錄對數據庫的操做,便於恢復。

7:SGA主要有那些部分,主要做用是什麼?

答:db_cache(緩存數據塊),shared_pool(緩存sql,執行計劃,數據字典信息 等),large_pool(MTS模式、parallel 、rman等要用到),java pool(java程序如SQLJ存儲過程運行時要用到)。

8:Oracle系統進程主要有哪些,做用是什麼?

答:smon(合併空間,實例恢復),pmon(清理失敗的進程),歸檔進程(負責在日誌切換的時候歸 檔日誌文件),lgmr(日誌書寫器進程,負責寫日誌),ckpt(檢查點進程,觸發檢查點),dbwr(數據庫寫入器,負責把數據寫入導 datafile)。

第三輪:備份恢復類

1:備份如何分類?

答:邏輯備份(exp)與物理備份。或者冷備份與熱備份。

2:歸檔是什麼含義?

答:把日誌文件放到另外一個地方。

3:若是一個表在2004-08-04 10:30:00 被drop,在有完善的歸檔和備份的狀況下,如何恢復?

答:拷貝備份,recover database until time 2004-08-04 10:30:00 alter database open resetlogs;

4:rman是什麼,有何特色?

答:rman叫恢復管理器。特色不少。能夠在線備份,到少目標數據庫是mount狀態。1)熱備份。2)能夠存儲腳本。3)能夠增量備份。4)自動管理備份集

5:standby的特色

答:利用傳輸重作日誌來達到同步的目的。能夠設定多個保護級別,Arrayi後支持邏輯standbyDB。

6:對於一個要求恢復時間比較短的系統(數據庫50G,天天歸檔5G),你如何設計備份策略

答:天天一個全備份。

第四輪:系統管理類

1:對於一個存在系統性能的系統,說出你的診斷處理思路

答:作一個statspack,根據top 5,system load,top sql等來作相應的調整。

2:列舉幾種診斷IO、CPU、性能情況的方法

答:hp-unix:iostat -x 1 5;top/vmstat/glance

3:對statspack有何認識?

答:一個性能診斷工具而已,其本質就是在兩個時間點採樣兩個系統數據。(動態性能視圖),而後根據兩個snapshot,產生一個報告。

4:若是系統如今須要在一個很大的表上建立一個索引,你會考慮那些因素,如何作以儘可能減少對應用的影響

答:1)增大sort_area_size(8i)/pga_aggregate_target(Arrayi)值。2)若是表有分區(通常大表都要用到分區的),按分區逐個建索引,若是是本地索引的話。3)系統空閒的時候建。

5:對raid10 和raid5有何認識?

答:raid10是先鏡像後條帶,適合對寫入速度要求較高的數據庫系統,特別是online redolog文件,raid5適合大部分的數據庫系統和數據倉庫系統,讀性能優於寫性能。

相關文章
相關標籤/搜索