2023年華為面試題附答案OracleDBA數(shù)據庫管理員JAVA程序員架構師必看_第1頁
2023年華為面試題附答案OracleDBA數(shù)據庫管理員JAVA程序員架構師必看_第2頁
2023年華為面試題附答案OracleDBA數(shù)據庫管理員JAVA程序員架構師必看_第3頁
2023年華為面試題附答案OracleDBA數(shù)據庫管理員JAVA程序員架構師必看_第4頁
2023年華為面試題附答案OracleDBA數(shù)據庫管理員JAVA程序員架構師必看_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

DBA數(shù)據庫管理員JAVA程序員架構師必看一、?技術問題部分(數(shù)據庫部分)1、?表空間的管理方式有哪幾種?數(shù)據字典管理方式本地文獻管理方式2、 談談你對索引的理解?索引是若干數(shù)據行的關鍵字的列表,查詢數(shù)據時,通過索引中的關鍵字可以快速定位到要訪問的記錄所在的數(shù)據塊,從而大大減少讀取數(shù)據塊的I/O次數(shù),因此可以顯著提高性能。3、 說說索引的組成?索引列、rowid4、?分區(qū)表用過么?談談分區(qū)表的應用?分區(qū)表在對表的DML的并行解決上有極大得優(yōu)勢,并且可以一部分設為只讀,用在銷售記錄,醫(yī)院處方等地方!?。?、?你對分區(qū)表的理解?如何截斷分區(qū)表一個分區(qū)的記錄?一個分區(qū)表有一個或多個分區(qū),每個分區(qū)通過使用范圍分區(qū)、散列分區(qū)、或組合分區(qū)分區(qū)的行分區(qū)表中的每一個分區(qū)為一個段,可各自位于不同的表空間中對于同時可以使用幾個進程進行查詢或操作的大型表分區(qū)非常有用altertabletable_nametruncat(yī)epartitionpartition_name;6、 物理文獻有哪幾種?控制文獻包含了什么信息?1) 數(shù)據文獻2)控制文獻3)日記文獻包含維護和驗證有選舉權據庫完整性的必要信息、例如,控制文獻用于辨認數(shù)據文獻和重做日記文獻,一個有選舉權據庫至少需要一個控制文獻7、?表空間用完了如何增長?三種種擴展方式:1增長數(shù)據文獻?altertablespacenameadddatafile‘途徑’size4M;2?擴展數(shù)據文獻大小alterdatabasedatafile‘途徑’resize4M;3?把數(shù)據文獻設為自動增長alterdat(yī)abasedatafile‘途徑’autoextendonnext1Mmaxsize20M;8、 SGA包含幾部分?Sharedpool(共享池),DataBaseBufferCache(數(shù)據緩沖區(qū))RedoLogBuffer(重做日記緩沖區(qū)),LargePool,大池,JAVA池。9、 DECODE函數(shù)的用法?DECODE的語法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表達假如value等于if1時,DECODE函數(shù)的結果返回then1,...,假如不等于任何一個if值,則返回else。初看一下,DECODE只能做等于測試,但剛才也看到了,我們通過一些函數(shù)或計算替代value,是可以使DECODE函數(shù)具有大于、小于或等于功能。還可以轉化表結構!10、?DELETE和TRUNCATE的區(qū)別?答:1、TRUNCATE在各種表上無論是大的還是小的都非??臁<偃缬蠷OLLBACK命令DELETE將被撤消,而TRUNCATE則不會被撤消。2、TRUNCATE是一個DDL語言,向其他所有的DDL語言同樣,他將被隱式提交,不能對TRUNCATE使用ROLLBACK命令。3、TRUNCATE將重新設立高水平線和所有的索引。在對整個表和索引進行完全瀏覽時,通過TRUNCATE操作后的表比DELETE操作后的表要快得多。4、TRUNCATE不能觸發(fā)任何DELETE觸發(fā)器。5、不能授予任何人清空別人的表的權限。6、當表被清空后表和表的索引講重新設立成初始大小,而delete則不能。7、不能清空父表。11、?談談你對事務的理解?ORACLE事務從COMMIT、ROLLBACK、連接到數(shù)據庫或開始第一條可執(zhí)行的SQL語句時開始,到一條COMMIT、ROLLBACK語句或退出數(shù)據庫時結束。假如在一個事務中包含DDL語句,則在DDL語句的前后都會隱含地執(zhí)行COMMIT語句,從而開始或結束一個事務。假如一個事務由于某些故障或者由于用戶改變主意而必須在提交前取消它,則數(shù)據庫被恢復到這些語句和過程執(zhí)行之前的狀態(tài)。運用ROLLBACK語句可以在COMMIT命令前隨時撤消或回退一個事務。可以回退整個事務,也可以會退部分事務,但是不能回退一個已經被提交的事務?;赝瞬糠质聞盏腞OLLBACK命令為:ROLLBACKtosavepoint存儲點名存儲點是用戶放入事務中的標記,用來表達一個可被回退的位置。存儲點通過在事務中放入一個SAVEPOINT命令而被插入。該命令的語法是:SAVEPOINT存儲點名假如在ROLLBACK語句中沒有給出存儲點名,則整個事務被回退。12、?給表A加一列abc口述?數(shù)據庫正在應用時應先使數(shù)據庫處在靜默狀態(tài)再altertableaaddabcvarchar2(10),假如不是就直接用?。。?、 客戶端連接服務器需要修改什么文獻?tnsname.ora,listener.ora14、?索引重建的概念?說說索引重建的意義?當我們創(chuàng)建索引時,oracle會為索引創(chuàng)建索引樹,表和索引樹通過rowid(偽列)來定位數(shù)據。當表里的數(shù)據發(fā)生更新時,oracle會自動維護索引樹。但是在索引樹中沒有更新操作,只有刪除和插入操作。例如在某表id列上創(chuàng)建索引,某表id列上有值“101”,當我將“101”更新為“110”時,oracle同時會來更新索引樹,但是oracle先將索引樹中的“101”標示為刪除(實際并未刪除,只是標示一下),然后再將“110”寫到索引樹中。假如表更新比較頻繁,那么在索引中刪除標示會越來越多,這時索引的查詢效率必然減少,所以我們應當定期重建索引。來消除索引中這些刪除標記。一般不會選擇先刪除索引,然后再重新創(chuàng)建索引,而是rebuild索引。在rebuild期間,用戶還可以使用本來的索引,并且rebuild新的索引時也會運用本來的索引信息,這樣重建索引會塊一些。15、?你對游標的理解,游標的分類,使用方法?游標是結果集數(shù)據中的指針,作用是為遍歷結果集時,存儲每條記錄的結果,1.聲明游標,2.打開游標,3.提取游標,4.關閉游標游標for循環(huán)顯式游標,隱式游標,游標變量!16、 存儲過程的用法?在存儲過程中異常的解決,分類?舉兩個預定義異常的例子?存儲過程:是預編譯數(shù)據庫SQL的集合存儲過程是預編譯過的,執(zhí)行時勿須編譯,執(zhí)行速度更快,存儲過程封裝了一批SQL語句,便于維護數(shù)據的完整性與一致性。并且可以多次調用。異常:自定義,預定義,非預定義No_Dat(yī)a_FoundToo_Many_RowsCASE_NOT_FOUND17、?談談你對分區(qū)索引的理解,說說分類和區(qū)別?分區(qū)表和一般表同樣可以建立索引,分區(qū)表可以創(chuàng)建局部索引和全局索引。當分區(qū)中出現(xiàn)許多事務并且要保證所有分區(qū)中的數(shù)據記錄的唯一性時采用全局索引。1.3.1.局部索引分區(qū)的建立:SQL>createindexdinya_idx_tondinya_test(item_id)2local3(4partitionidx_1tablespacedinya_space01,5partitionidx_2tablespacedinya_space02,6partitionidx_3tablespacedinya_space037);Indexcreated.SQL>看查詢的執(zhí)行計劃,從下面的執(zhí)行計劃可以看出,系統(tǒng)已經使用了索引:SQL>select*fromdinya_testpartition(part_01)twheret.item_id=12;ExecutionPlan----------------------------------------------------------0SELECTSTATEMENTOptimizer=CHOOSE(Cost=2Card=1Bytes=187)10TABLEACCESS(BYLOCALINDEXROWID)OF’DINYA_TEST’(Cost=2Card=1Bytes=187)21INDEX(RANGESCAN)OF’DINYA_IDX_T’(NON-UNIQUE)(Cost=1Card=1)Stat(yī)istics----------------------------------------------------------0recursivecalls0dbblockgets4consistentgets0physicalreads0redosize334bytessentviaSQL*Nettoclient309bytesreceivedviaSQL*Netfromclient2SQL*Netroundtripsto/fromclient1sorts(memory)0sorts(disk)2rowsprocessedSQL>1.3.2.全局索引分區(qū)的建立全局索引建立時global子句允許指定索引的范圍值,這個范圍值為索引字段的范圍值:SQL>creat(yī)eindexdinya_idx_tondinya_test(item_id)2globalpartitionbyrange(item_id)3(4partitionidx_1valueslessthan(1000)tablespacedinya_space01,5partitionidx_2valueslessthan(10000)tablespacedinya_space02,6partitionidx_3valueslessthan(maxvalue)tablespacedinya_space037);Indexcreated.SQL>本例中對表的item_id字段建立索引分區(qū),當然也可以不指定索引分區(qū)名直接對整個表建立索引,如:SQL>creat(yī)eindexdinya_idx_tondinya_test(item_id);Indexcreated.SQL>同樣的,對全局索引根據執(zhí)行計劃可以看出索引已經可以使用:SQL>select*fromdinya_testtwheret.item_id=12;ExecutionPl(wèi)an----------------------------------------------------------0SELECTSTATEMENTOptimizer=CHOOSE(Cost=2Card=3Bytes=561)10TABLEACCESS(BYGLOBALINDEXROWID)OF’DINYA_TEST’(Cost=2Card=3Bytes=561)21INDEX(RANGESCAN)OF’DINYA_IDX_T’(NON-UNIQUE)(Cost=1Card=3)Statistics----------------------------------------------------------5recursivecalls0dbblockgets10consistentgets0physicalreads0redosize420bytessentviaSQL*Nettoclient309bytesreceivedviaSQL*Netfromclient2SQL*Netroundtripsto/fromclient3sorts(memory)0sorts(disk)5rowsprocessed18、?創(chuàng)建用戶的語句?Createuseruser_nameidentifiedbypassworddefaulttablespacetablespacename;grantcreat(yī)esessiontousername;19、 談談你對實例的理解?Oracle是用實例來進行數(shù)據庫管理的,實例在用戶和orale數(shù)據庫之間充當中間層的角色。每當在服務器上啟動數(shù)據庫時,就在內存中創(chuàng)建一個oracle實例,即oracle為數(shù)據庫分派內存和創(chuàng)建并啟動一個或多個oracle進程,然后由實例加載并打開數(shù)據庫,最后由這個實例來訪問和控制硬盤中的數(shù)據文獻。20、?觸發(fā)器中能用COMMIT,為什么?在觸發(fā)器中不能使用COMMIT;等事務控制語句。由于觸發(fā)器是事務觸發(fā)的假如有事務控制語句就會影響到觸發(fā)它的事務。即連帶觸發(fā)它的語句之前的已經完畢的沒有提交的語句都要受到影響。這是會影響到數(shù)據的一致性的。21、?有幾種表空間?數(shù)據表空間(永久表空間)、臨時表空間、撤消表空間22、 歸檔模式與非歸檔模式?為什么歸檔模式可以恢復到任意時刻?歸檔是在重做日記文獻被覆蓋之前,將該重做日記文獻通過復制操作系統(tǒng)文獻的方式,保存到指定的位置。保存下來的重做日記文獻的集合被稱為歸檔重做日記文獻,復制的過程被稱為歸檔。在歸檔日記(ARCHIVELOG)模式下,ORACLE對重做日記文獻進行歸檔操作。非歸檔日記(NOARCHIVELOG)模式下,不會對重做日記文獻進行歸檔操作。由于非歸檔模式不會在覆蓋之前保存,這樣就導致了數(shù)據庫在一定期間之前的重做日記文獻丟失,也就不能恢復到被覆蓋之前。而歸檔模式在任意時間上都有重做日記文獻,故可以恢復到任意時刻。二、技術問題(JAVA部分)1、 Struts和Hibernate分別屬于持久層,用例層,表達層的那一層?Struts是表達層,Hibernate是持久層。2、 Struts里如何體現(xiàn)MVC模式?Html或jsp文獻是MVC模式中的視圖層ActionForm是MVC模式中的模式層Action是MVC模式中的控制層通過控制層可以對視圖層和模式層進行業(yè)務邏輯的解決3、 用Struts做過那些項目?4、 談談對Struts的結識?Struts跟Tomcat諸多Apache項目同樣,是開源軟件,這是它的一大優(yōu)點。使開發(fā)者能更進一步的了解其內部實現(xiàn)機制。除此之外,Struts的優(yōu)點重要集中體現(xiàn)在兩個方面:Taglib和頁面導航。Taglib是Struts的標記庫,靈活動用,能大大提高開發(fā)效率。此外,就目前國內的JSP開發(fā)者而言,除了使用JSP自帶的常用標記外,很少開發(fā)自己的標記,或許Struts是一個很好的起點。關于頁面導航,我認為那將是此后的一個發(fā)展方向,事實上,這樣做,使系統(tǒng)的脈絡更加清楚。通過一個配置文獻,即可把握整個系統(tǒng)各部分之間的聯(lián)系,這對于后期的維護有著莫大的好處。特別是當另一批開發(fā)者接手這個項目時,這種優(yōu)勢體現(xiàn)得更加明顯。但是我覺得它雖然尚有不少缺陷,但它是一種非常優(yōu)秀的J2EEMVC實現(xiàn)方式,對項目的開發(fā)有很大的幫助。5、?String在JAVA里是固定長度的嗎?為什么可以用”+”連接?String在JAVA中是有固定長度的可以用”+”連接的因素是Java語言提供對字符串串聯(lián)符號("+")和其他對象到字符串的轉換的特殊支持。字符串串聯(lián)是通過StringBuilder(或StringBuffer)類及其append方法實現(xiàn)的。再通過調用StingBuffer中的toString方法,將StringBuffer的對象轉換String的對象。6、 String和StringBuffer的區(qū)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論