小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

ORACLE DBA 面試題

 昵稱3363160 2010-09-15

1. 解釋冷備份和熱備份的不同點(diǎn)以及各自的優(yōu)點(diǎn)
解答:熱備份針對(duì)歸檔模式的數(shù)據(jù)庫(kù),在數(shù)據(jù)庫(kù)仍舊處于工作狀態(tài)時(shí)進(jìn)行備份。而冷備份指在數(shù)據(jù)庫(kù)關(guān)閉后,進(jìn)行備份,適用于所有模式的

數(shù)據(jù)庫(kù)。熱備份的優(yōu)點(diǎn)在于當(dāng)備份時(shí),數(shù)據(jù)庫(kù)仍舊可以被使用并且可以將數(shù)據(jù)庫(kù)恢復(fù)到任 意一個(gè)時(shí)間點(diǎn)。冷備份的優(yōu)點(diǎn)在于它的備份和恢復(fù)

操作相當(dāng)簡(jiǎn)單,并且由于冷備份的數(shù)據(jù)庫(kù)可以工作在非歸檔模式下,數(shù)據(jù)庫(kù)性能會(huì)比歸檔 模式稍好。(因?yàn)椴槐貙?span lang="EN-US">archive log寫入硬盤)

2.
你必須利用備份恢復(fù)數(shù)據(jù)庫(kù),但是你沒有控制文件,該如何解決問題呢?
解答:重建控制文件,用帶backup control file 子句的recover 命令恢復(fù)數(shù)據(jù)庫(kù)。
        
3.  
如何轉(zhuǎn)換init.oraspfile?
解答:使用create spfile from pfile 命令
.
4.
解釋data block , extent segment的區(qū)別(這里建議用英文術(shù)語(yǔ))  
解答:data block是數(shù)據(jù)庫(kù)中最小的邏輯存儲(chǔ)單元。當(dāng)數(shù)據(jù)庫(kù)的對(duì)象需要更多的物理存儲(chǔ)空間時(shí),連續(xù)的data block就組成了extent .

個(gè)數(shù)據(jù)庫(kù)對(duì)象擁有的所有extents被稱為該對(duì)象的segment.

5.
給出兩個(gè)檢查表結(jié)構(gòu)的方法
解答:1、DESCRIBE命令
      2
、 DBMS_METADATA.GET_DDL

6.    
怎樣查看數(shù)據(jù)庫(kù)引擎的報(bào)錯(cuò)
解答:alert log.

7.    
比較truncatedelete 命令
解答:兩者都可以用來刪除表中所有的記錄。區(qū)別在于:truncateDDL操作,它移動(dòng)HWK,不需要 rollback segment .DeleteDML操作

, 需要rollback segment 且花費(fèi)較長(zhǎng)時(shí)間.

8.    
使用索引的理由
解答:快速訪問表中的data block

9.   
給出在STAR SCHEMA中的兩種表及它們分別含有的數(shù)據(jù)
解答:Fact tables dimension tables. fact table 包含大量的主要的信息而 dimension tables 存放對(duì)fact table 某些屬性描述的

信息

10. FACT Table
上需要建立何種索引?
解答:位圖索引(bitmap index

11.
給出兩種相關(guān)約束?
解答:主鍵和外鍵

12.
如何在不影響子表的前提下,重建一個(gè)母表
解答:子表的外鍵強(qiáng)制實(shí)效,重建母表,激活外鍵

13.
解釋歸檔和非歸檔模式之間的不同和它們各自的優(yōu)缺點(diǎn)
解答:歸檔模式是指你可以備份所有的數(shù)據(jù)庫(kù) transactions并恢復(fù)到任意一個(gè)時(shí)間點(diǎn)。非歸檔模式則相反,不能恢復(fù)到任意一個(gè)時(shí)間點(diǎn)。

但是非歸檔模式可以帶來數(shù)據(jù)庫(kù)性能上的少許提高
.
14.
如何建立一個(gè)備份控制文件?
解答:Alter database backup control file to trace.

15.
給出數(shù)據(jù)庫(kù)正常啟動(dòng)所經(jīng)歷的幾種狀態(tài) ?
解答:
STARTUP NOMOUNT –
數(shù)據(jù)庫(kù)實(shí)例啟動(dòng)
STARTUP MOUNT      -
數(shù)據(jù)庫(kù)裝載
STARTUP OPEN          –
數(shù)據(jù)庫(kù)打開

16.
哪個(gè)column可以用來區(qū)別V$視圖和GV$視圖?
解答: INST_ID 指明集群環(huán)境中具體的某個(gè)instance 。
17.
如何生成explain plan?
解答:
    
運(yùn)行utlxplan.sql. 建立plan 表針對(duì)特定SQL語(yǔ)句,使用 explain plan set statement_id = 'tst1' into plan_table 運(yùn)行

utlxplp.sql utlxpls.sql察看explain plan

18.
如何增加buffer cache的命中率?
解答:在數(shù)據(jù)庫(kù)較繁忙時(shí),適用buffer cache advisory 工具,查詢v$db_cache_advice . 如果有必要更改,可以使用 alter system set

db_cache_size 命令

19. ORA-01555
的應(yīng)對(duì)方法?
解答:具體的出錯(cuò)信息是snapshot too old within rollback seg , 通??梢酝ㄟ^增大rollback seg來解決問題。當(dāng)然也需要察看一下具

體造成錯(cuò)誤的SQL文本

20.
解釋$ORACLE_HOME$ORACLE_BASE的區(qū)別?
解答:ORACLE_BASEoracle的根目錄,ORACLE_HOMEoracle產(chǎn)品的目錄

21.
如何判斷數(shù)據(jù)庫(kù)的時(shí)區(qū)?
解答:SELECT DBTIMEZONE FROM DUAL;

22. 解釋GLOBAL_NAMES設(shè)為TRUE的用途
解答:GLOBAL_NAMES指明聯(lián)接數(shù)據(jù)庫(kù)的方式。如果這個(gè)參數(shù)設(shè)置為TRUE,在建立數(shù)據(jù)庫(kù)鏈接時(shí)就必須用相同的名字連結(jié)遠(yuǎn)程數(shù)據(jù)庫(kù)

23。如何加密PL/SQL程序?
解答:WRAP

24. 解釋FUNCTION,PROCEDUREPACKAGE區(qū)別
解答:function procedurePL/SQL代碼的集合,通常為了完成一個(gè)任務(wù)。procedure 不需要返回任何值而function將返回一個(gè)值在另一

方面,Package是為了完成一個(gè)商業(yè)功能的一組function proceudre的集合

25. 解釋TABLE Function的用途
解答:TABLE Function是通過PL/SQL邏輯返回一組紀(jì)錄,用于普通的表/視圖。他們也用于pipelineETL過程。

26. 舉出3種可以收集three advisory statistics
解答:Buffer Cache Advice, Segment Level Statistics, Timed Statistics

27. Audit trace 存放在哪個(gè)oracle目錄結(jié)構(gòu)中?
解答:unix $ORACLE_HOME/rdbms/audit   Windows the event viewer

28. 解釋materialized views的作用
解答:Materialized views 用于減少那些匯總,集合和分組的信息的集合數(shù)量。它們通常適合于數(shù)據(jù)倉(cāng)庫(kù)和DSS系統(tǒng)。

29. 當(dāng)用戶進(jìn)程出錯(cuò),哪個(gè)后臺(tái)進(jìn)程負(fù)責(zé)清理它
解答: PMON

30. 哪個(gè)后臺(tái)進(jìn)程刷新materialized views?
解答:The Job Queue Processes.

31. 如何判斷哪個(gè)session正在連結(jié)以及它們等待的資源?
解答:V$SESSION / V$SESSION_WAIT

32. 描述什么是 redo logs
解答:Redo Logs 是用于存放數(shù)據(jù)庫(kù)數(shù)據(jù)改動(dòng)狀況的物理和邏輯結(jié)構(gòu)。可以用來修復(fù)數(shù)據(jù)庫(kù).
33.
如何進(jìn)行強(qiáng)制LOG SWITCH?
解答:ALTER SYSTEM SWITCH LOGFILE;

34. 舉出兩個(gè)判斷DDL改動(dòng)的方法?
解答:你可以使用 Logminer Streams

35. Coalescing做了什么?
解答:Coalescing針對(duì)于字典管理的tablespace進(jìn)行碎片整理,將臨近的小extents合并成單個(gè)的大extent.

36. TEMPORARY tablespacePERMANENT tablespace 的區(qū)別是?
解答:A temporary tablespace 用于臨時(shí)對(duì)象例如排序結(jié)構(gòu)而 permanent tablespaces用來存儲(chǔ)那些'真實(shí)'的對(duì)象(例如表,回滾段等)

37. 創(chuàng)建數(shù)據(jù)庫(kù)時(shí)自動(dòng)建立的tablespace名稱?
解答:SYSTEM tablespace.

38. 創(chuàng)建用戶時(shí),需要賦予新用戶什么權(quán)限才能使它聯(lián)上數(shù)據(jù)庫(kù)。
解答:CONNECT

39. 如何在tablespace里增加數(shù)據(jù)文件?
解答:ALTER TABLESPACE <tablespace_name> ADD DATAFILE <datafile_name> SIZE <size>

40. 如何變動(dòng)數(shù)據(jù)文件的大?。?/span>
解答:ALTER DATABASE DATAFILE <datafile_name> RESIZE <new_size>;

41. 哪個(gè)VIEW用來檢查數(shù)據(jù)文件的大?。?/span>
解答: DBA_DATA_FILES

42. 哪個(gè)VIEW用來判斷tablespace的剩余空間
解答:DBA_FREE_SPACE

43. 如何判斷誰往表里增加了一條紀(jì)錄?
解答:auditing

44. 如何重構(gòu)索引?
解答: ALTER INDEX <index_name> REBUILD;

45. 解釋什么是Partitioning(分區(qū))以及它的優(yōu)點(diǎn)。
解答:Partition將大表和索引分割成更小,易于管理的分區(qū)。

46. 你剛剛編譯了一個(gè)PL/SQL Package但是有錯(cuò)誤報(bào)道,如何顯示出錯(cuò)信息?
解答:SHOW ERRORS

47. 如何搜集表的各種狀態(tài)數(shù)據(jù)?
解答: ANALYZE
The ANALYZE command.

48. 如何啟動(dòng)SESSION級(jí)別的TRACE
解答: DBMS_SESSION.SET_SQL_TRACE
      ALTER SESSION SET SQL_TRACE = TRUE;

49. IMPORTSQL*LOADER 2個(gè)工具的不同點(diǎn)
解答:這兩個(gè)ORACLE工具都是用來將數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)的。
區(qū)別是:IMPORT工具只能處理由另一個(gè)ORACLE工具EXPORT生成
的數(shù)據(jù)。而SQL*LOADER可以導(dǎo)入不同的ASCII格式的數(shù)據(jù)源

50。用于網(wǎng)絡(luò)連接的2個(gè)文件?
解答: TNSNAMES.ORA and SQLNET.ORA

1.HashtableHashMap有什么區(qū)別?
2.
你怎么理解 MVC模式?
3.SQLServer
中左聯(lián)接查詢用left join,Oracle中用什么?
4.SQLServer
中的數(shù)據(jù)庫(kù),在Oracle中對(duì)應(yīng)的是什么?
5.
如果SQLServer中有兩個(gè)數(shù)據(jù)庫(kù),那么讓你把這兩個(gè) 數(shù)據(jù)庫(kù)對(duì)應(yīng)到Oracle中,你應(yīng)該怎么做?
6.
有兩個(gè)頁(yè)面a.jspb.jsp,要從a.jsp傳值到 b.jsp有幾種方法?分別是什么?
7.
有三個(gè)頁(yè)面,a.jsp,b.jspc.jsp,流程 是:a.jsp->b.jsp->c.jsp,其中a.jsp中提交的數(shù)據(jù)要在c.jsp中訪問,用最簡(jiǎn)單的方法怎么做?注意不能放在 session
8.
映射是什么?你怎么理解映射?
9.Hibernate
中:不看數(shù)據(jù)庫(kù),不看XML文件,不看查詢語(yǔ)句,怎么樣能知道表結(jié)構(gòu)?
10.SQLServer
支持集群 嗎?
11.
為什么要用MVC?我從JSP頁(yè)面直接訪問數(shù)據(jù)庫(kù)不是更簡(jiǎn)單嗎,為什么非要先提交到控制器再做處 理?
12.
struts中,假設(shè)有一個(gè)對(duì)數(shù)據(jù)庫(kù)中一張表的增刪改查的操作,你是寫一個(gè)action還是寫 多個(gè)action?為什么?
13.struts
中的actionform有什么好處?
14.
Hibernate嗎,用它有什么好處?
15.
通常所說的web應(yīng)用程序分3層,即MVC,如果我想分4 層,應(yīng)該怎么分?
 
1.Hashtable
HashMap有什么區(qū)別?
a.Hashtable
是繼承自陳舊的Dictionary類的,HashMap繼承自AbstractMap類同時(shí)是Java 1.2引進(jìn)的Map接口的一個(gè)實(shí)現(xiàn)。
b.
也許最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。這就意味著,
 
雖然你可以不用采取任何特殊的行為就可以在一個(gè) 多線程的應(yīng)用程序中用一個(gè)Hashtable,
 
但你必須同樣地為一個(gè)HashMap提供外同步。一個(gè)方便的方法就是利用Collections類的靜態(tài)的synchronizedMap()方法,
 
它創(chuàng)建一個(gè)線程安全的Map對(duì)象,并把它作為一個(gè)封裝的對(duì)象來返回。這個(gè)對(duì)象的方法可以讓你同步訪問潛在的HashMap
 
這么做的結(jié)果就是當(dāng)你不需要同步時(shí),你不能切斷Hashtable中的同步(比如在一個(gè)單線程的應(yīng)用程序中),
 
而且同步增加了很多處理費(fèi)用。
c.
第三點(diǎn)不同是,只有HashMap可以讓你將空值作為一個(gè)表的條目的keyvalue。
  HashMap
中只有一條記錄可以是一個(gè)空的key,但任意數(shù)量的條目可以是空的value。
 
這就是說,如果在表中沒有發(fā)現(xiàn)搜索鍵,或者如果發(fā)現(xiàn)了搜索鍵,但它是一個(gè)空的值,那么get()將返回null。
 
如果有必要,用containKey()方法來區(qū)別這兩種情況。
d.HashMap
去掉了Hashtablecontains方法,保留了 containsValuecontainsKey方法 
e.Hashtable
hash數(shù)組默認(rèn)大小是11,增加的方式是 old*2+1HashMaphash數(shù)組的默認(rèn)大小是16,而且一定是2的指數(shù)
2.
你怎么理解MVC 模式?
MVC
SUN早期提出的model2開發(fā)模式,強(qiáng)制的把視圖控制和模型層分開
 不僅實(shí)現(xiàn)了功能模塊和顯示模塊的分離,同時(shí)它 還提高了應(yīng)用系統(tǒng)的可維護(hù)性、可擴(kuò)展性、可移植性和組件的可復(fù)用性
3.SQLServer
中左聯(lián)接查詢用 left join,Oracle中用什么?
左連接:select(nvl(a.c,0)-nvl(b.c,0)) from a,b where a.id(+)=b.id 
右連接:select(nvl(a.c,0)-nvl(b.c,0)) from a,b where a.id=b.id(+) 
自連接:select(nvl(a.c,0)-nvl(b.c,0)) from a,b where a.id(+)=b.id(+) 
說明:加號(hào)寫在左就是左連接,寫在右就是右連接,看加號(hào)的方法來定
4.SQLServer
中的數(shù)據(jù)庫(kù),在Oracle中對(duì)應(yīng)的是什么?
表空間
5.
如果SQLServer中有兩個(gè)數(shù)據(jù)庫(kù), 那么讓你把這兩個(gè)數(shù)據(jù)庫(kù)對(duì)應(yīng)到Oracle中,你應(yīng)該怎么做?
Oracle中建一個(gè)用戶,對(duì)應(yīng)兩個(gè)表空間
6.
兩個(gè)頁(yè)面a.jspb.jsp,要從a.jsp傳值到b.jsp有幾種方法?分別是什么?
a:
最常用的方法是用form中的 text,<input type=text name=username value=admin>,然后在b.jsp頁(yè)面中這樣獲取
  String username=request.getParameter("username");
b:
直接在Url地址欄里面輸入第一 個(gè)頁(yè)面的地址,在后加問號(hào),然后把要傳的參數(shù)及值寫在后面,如有多個(gè)用&隔開,然后在下一頁(yè)面用
  request.getParameter("
參數(shù)名")來獲取,例如:  b.jsp中可用這樣獲取:String username=request.getParameter("username");String username=request.getParameter("password");
c:
form中放hidden :<input type=hidden name=username value=admin>,獲取方法同上
說明:傳值的方 法有很多種,以上是最常用最簡(jiǎn)單的幾種方式,當(dāng)然,如果傳的值有中文的話,需另做處理
6.
有三個(gè)頁(yè)面,a.jsp,b.jspc.jsp, 程是:a.jsp->b.jsp->c.jsp,其中a.jsp中提交的數(shù)據(jù)要在c.jsp中訪問,用最簡(jiǎn)單的方法 怎么做?注意不能放在session
用隱藏表單域,即在b.jsp頁(yè)面中用N個(gè)hidden把上一頁(yè)面提交過來的信息保存下來,然后和當(dāng)前一 起提交,再到c.jsp里面獲取
說明:盡量不要用session和少用session
7.jsp
servlet有什么區(qū)別?
a:servlet
是在java代碼里面放html,jsp是在html里面放java代碼(最后運(yùn)行的時(shí)候服務(wù) 器會(huì)把JSP解析成servlet) 
b:servlet
是一個(gè)java類,有自己的映射,jsp不是
說明:區(qū)別太多
8.
射是什么?你怎么理解映射?
映射即別名,通過別名可以訪問
9.Hibernate
中:不看數(shù)據(jù) 庫(kù),不看XML文件,不看查詢語(yǔ)句,怎么樣能知道表結(jié)構(gòu)?
看表結(jié)構(gòu)對(duì)應(yīng)的類文件,比如UserInfo表對(duì)應(yīng)的UserInfo.java文件
10.SQLServer
支持集群?jiǎn)幔?/span>
支持,但是是屬于熱備份類型,不能做負(fù)載平衡。不過符合你 的條件。
首先系統(tǒng)做集群,數(shù)據(jù)庫(kù)文件放到磁盤陣列里,雙機(jī)或多機(jī)共同訪問磁盤陣列,就可以了
IIS
可以做集群后負(fù)載平衡。
11.
什么要用MVC?我從JSP頁(yè)面直接訪問數(shù)據(jù)庫(kù)不是更簡(jiǎn)單嗎,為什么非要先提交到控制再做處理?
  MVC
各施其職,互不干涉 
 
MVC模式中,三個(gè)層各施其職,所以如果一旦哪一層的需求發(fā)生了變化,
 
就只需要更改相應(yīng)的層中的代碼而不會(huì)影響到其它層中的代碼。 有利于開發(fā)中的分工 
 
MVC模式中,由于按層把系統(tǒng)開,那么就能更好的實(shí)現(xiàn)開發(fā)中的分工。網(wǎng)頁(yè)設(shè)計(jì)人員可以進(jìn)行開發(fā)視圖層中的JSP
 
對(duì)業(yè)務(wù)熟悉的開發(fā)人員可開發(fā)業(yè)務(wù)層,而其它開發(fā)人員可開發(fā)控制層。 有利于組件的重用 
 
分層后更有利于組件的重用。如控制層可獨(dú)立成一個(gè)能用的組件,視圖層也可做成通用的操作界面
 
說明:這個(gè)好處就太多了!!!
12.
struts中,假設(shè)有一個(gè)對(duì)數(shù)據(jù)庫(kù)中一張表的增刪改查的操作,你是寫一個(gè)action還是寫多個(gè)action?為什么?
 
寫一個(gè)action,讓這個(gè)action繼承自DispatchAction,然后在struts-config.xml中給這個(gè)action映射加一參 數(shù),parameter="method"
 
這個(gè)在提交到這個(gè)action中時(shí),會(huì)根據(jù)傳來的參數(shù)中method的值來執(zhí)行相應(yīng)的action的方法, ,http://localhost:8080/login.do?method=doLogin
 
這個(gè)提交到action的時(shí)會(huì)自動(dòng)找方法名叫doLogin的方法,參數(shù)返回值原來一樣ActionForward
13.struts
中的actionform有什么好處?
  struts
actionform其實(shí)不好,里面有一堆屬性,雖然可以自動(dòng)填充,但是你會(huì)發(fā)現(xiàn),在很多情況下(比如你用到Hibernate)
 
你還要需要自動(dòng)寫一個(gè)數(shù)據(jù)庫(kù)表的映射類,通常是domain.UserInfo.java,這樣就和strutsform中的屬性重復(fù),所以他很多余,
  struts1.1
版本,保留了actionform,struts1.2中已經(jīng)有了新的LazyValidatorForm,但仍然保留了原有的 actionform,
 
而在struts 2.0中已經(jīng)把actionform去掉了
 
下面是解決方法
  a:
actionform換成DynaActionForm ,和原來不同的是在dynaActionForm可以domain.UserInfo.java的一個(gè)實(shí)例做為他的一個(gè)屬性
   
這樣你就不需要在里面寫一堆的get,set方法,只是在頁(yè)面上綁定稍有不同
  b:
actionform換成org.apache.struts.validator.LazyValidatorForm,這樣你完全不用寫你的 actionform這個(gè)類,直接在xml里面做
   
相應(yīng)配置,當(dāng)然也可以加上驗(yàn)證框架
 
警告:這個(gè)問題是陷阱,實(shí)際上strutsactionform很不好,非常麻煩,用久了你會(huì)發(fā)現(xiàn)他其實(shí)是多余的,所以這個(gè)問題你應(yīng)該說他的壞處,
 
和怎么把actonform去掉
14.
用過Hibernate嗎,用它有什么好處?
  Hibernate
的最大的好處就是簡(jiǎn)化數(shù)據(jù)庫(kù)的操作,允許你的代碼以對(duì)象模式來訪問數(shù)據(jù)庫(kù)內(nèi)容,
 
比如通常我們找一個(gè)User的資料需要select出所需要的資料,而通過hibnate我們可以把這個(gè)User的資料作為一個(gè)對(duì)象來看待
 
,通過User.getName()或者User.getId()等操作來獲得,這樣就完全統(tǒng)一了上層JAVA或者C#OO語(yǔ)言中對(duì)于數(shù)據(jù)庫(kù)的非OO 作的不和諧了
 
另外對(duì)于復(fù)雜的表和表之間的關(guān)聯(lián)我們也不用去使用復(fù)雜的SelectSQL來操作,而使用對(duì)象可以方便獲得,
 
比如多對(duì)多關(guān)系某用戶屬于的部門的名稱,雖然底層數(shù)據(jù)庫(kù)使用了3個(gè)表的主鍵關(guān)聯(lián)操作,
 
但是我們可以通過User.getDep().getName()來簡(jiǎn)單的獲得,這個(gè)就是持久化對(duì)象的好處了
 
說明:好處太多,只能在用的過程中慢慢體會(huì)   只能說一個(gè)字:爽
15.
通常所說的web應(yīng)用程序分3層, MVC,如果我想分四層,應(yīng)該怎么分?
 
加一個(gè)Hibernate數(shù)據(jù)持久層

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多