版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
數(shù)據(jù)庫程序員面試分模擬題1簡答題1.
在Oracle中,數(shù)據(jù)塊、Redo日志塊及控制文件數(shù)據(jù)塊的大小分別是多少?如何查詢?正確答案:這3種數(shù)據(jù)塊分別介紹如下:
1)數(shù)據(jù)塊(DataBloc(江南博哥)k),是讀寫數(shù)據(jù)文件的最小單位,默認是8KB,可以通過SQL語句“SELECTFILE#,NAME,BLOCK_SIZEFROMV$DATAFILE;”查詢,單位為BYTE。
2)Redo日志數(shù)據(jù)塊(RedoLogBlock),其大小一般等于操作系統(tǒng)的系統(tǒng)塊的大小,一般為512B或4096B,可以通過SQL語句“SELECTBLOCKSIZEFROMV$LOG;”或“SELECTLEBSZFROMX$KCCLE;”查詢,單位為BYTE。
3)控制文件數(shù)據(jù)塊(ControlFileBlock),默認為16KB,可以通過SQL語句“SELECTBLOCK_SIZEFROMV$CONTROLFILE;”查詢,單位為BYTE。[考點]邏輯結構
2.
如何查詢到數(shù)據(jù)庫的增長情況?正確答案:可以通過視圖DBA_HIST_TBSPC_SPACE_USAGE來獲取數(shù)據(jù)庫的增長情況。[考點]性能診斷
3.
怎樣收集表的統(tǒng)計信息?怎樣收集分區(qū)表的統(tǒng)計信息?正確答案:主要采用DBMS_STATS.GATHER_TABLE_STATS包進行統(tǒng)計信息的收集,如下:
DBMS_STATS.GATHER_TABLE_STATS(USER,'TB_NAME',CASCADE=>TRUE);--普通表
DBMS_STATS.GATHER_TABLE_STATS(USER,'TB_NAME',PARTNAME=>'PT_PART_NAME',GRANULARITY=>'PARTITION',CASCADE=>TRUE);--針對分區(qū)表的單個分區(qū)進行收集統(tǒng)計信息
除此之外,還有一些其他的用法,如下:
1)EXECDBMS_STATS.GATHER_DATABASE_STATS(USER);——收集當前數(shù)據(jù)庫下所有用戶的統(tǒng)計信息。
2)EXECDBMS_STATS.GATHER_SCHEMA_STATS(USER);——收集當前數(shù)據(jù)庫用戶下所有對象的統(tǒng)計信息。
當系統(tǒng)的分區(qū)表數(shù)據(jù)量很大時,如果每次都收集全部的分區(qū)必然會導致統(tǒng)計信息的收集非常慢,在Oracle11g之后可以通過設置INCREMENTAL來只針對數(shù)據(jù)有變動的分區(qū)做收集:
EXECDBMS_STATS.SET_TABLE_PREFS(USER,'TABLE_NAME','INCREMENTAL','TRUE');--只收集數(shù)據(jù)變動的分區(qū)
SELECTDBMS_STATS.GET_PREFS('INCREMENTAL',NULL,'TABLE_NAME')FROMDUAL;
--查看分區(qū)表INCREMENTAL的值[考點]統(tǒng)計信息
4.
如何批量刪除JOB?正確答案:可以采用SQL來生成刪除JOB的語句,首先執(zhí)行以下語句,可以根據(jù)情況對結果進行過濾:
SELECT'EXECDBMS_SCHEDULER.DROP_JOB('''||JOB_NAME||''',TRUB);FROM
USER_SCHEDULER_JOBST1;
將以上SQL生成的結果復制到命令窗口就可以批量執(zhí)行了。[考點]JOB
5.
DBMS_OUTPUT提示緩沖區(qū)不夠,怎么增加?正確答案:采用命令“DBMS_OUTPUT.ENABLE(20000);”,另外,如果DBMS_OUTPUT的信息不能顯示,那么需要設置SETSERVEROUTPUTON。[考點]系統(tǒng)包
6.
如何監(jiān)控索引的使用狀況?正確答案:在開發(fā)應用程序時,可能會建立很多索引,那么這些索引的使用到底怎么樣,是否有些索引一直都沒有用到過,在這種情況下就需要對這些索引進行監(jiān)控,以便確定它們的使用情況,并為是否可以清除它們給出依據(jù)。
監(jiān)控索引有兩種方式:
(1)直接監(jiān)控索引的使用情況
1)設置所要監(jiān)控的索引:ALTERINDEXIDX_T_XXMONITORINGUSAGE;
2)查看該索引有沒有被使用:SELECT*FROMV$OBJECT_USAGE;
3)關閉監(jiān)控:ALTERINDEXIDX_T_XXNOMONITORINGUSAGE;
查詢V$OBJECT_USAGE就可以知道數(shù)據(jù)庫對索引的使用情況。通過一段時間的監(jiān)控,就可以確定哪些是無用的索引。另外,為了避免使用V$OBJECT_USAGE只能查詢到當前用戶下索引的監(jiān)控情況,可以使用如下語句查詢數(shù)據(jù)庫中所有被監(jiān)控索引的使用情況:
SELECTU.NAMEOWNER,IO.NAMEINDEX_NAME,T.NAMETABLE_NAME,DECODE(BITAND(I.FLAGS,65536),0,'NO','YES')MONITORING,
DECODE(BITAND(OU.FLAGS,1),0,'NO','YES')USED,
OU.START_MONITORINGSTART_MONITORING,
OU.END_MONITORINGEND_MONITORING
FROMSYS.USERSU,
SYS.OBJ$IO,
SYS.OBJ$
T.
SYS.IND$I,
SYS.OBJECT_USAGEOU
WHEREI.OBJ#=OU.OBJ#
ANDIO.OBJ#=OU.OBJ#
ANDT.OBJ#=I.BO#
ANDU.USER#=IO.OWNER#;
(2)通過查看歷史的執(zhí)行計劃,分析索引的使用情況
可以從視圖DBA_HIST_SQL_PLAN中獲取到數(shù)據(jù)庫中所有索引的掃描次數(shù)情況,然后根據(jù)掃描次數(shù)和開發(fā)人員溝通是否需要保留索引。[考點]索引
7.
Oracle如何刪除歸檔日志文件?正確答案:在RMAN工具里刪除歸檔日志文件:
1.rmantarget/
2.CROSSCHECKARCHIVELOGALL;
3.LISTEXPIREDARCHIVELOGALL;
4.DELETEEXPIREDARCHIVELOGALL;[考點]RMAN
8.
用一條SQL語句查詢出每門課都大于80分的學生姓名:
namekechengfenshu
張三語文81
張三數(shù)學75
李四語文76
李四數(shù)學90
王五語文81
王五數(shù)學100
王五英語90正確答案:SELECTDISTINCTNAMEFROMTABLEWHERENAMENOTIN(SELECTDISTINCTNAMEFROMTABLEWHEREFENSHU<=80);。[考點]SQL部分
9.
如何固定SQL執(zhí)行計劃?正確答案:在實際項目中,通常在開發(fā)環(huán)境下,一些SQL執(zhí)行沒有任何功能問題,而當生產(chǎn)環(huán)境或生產(chǎn)環(huán)境的數(shù)據(jù)量發(fā)生較大的變化時,其SQL的執(zhí)行效率非常低。此時如果更改SQL,那么可能需要重新修改源程序以及重新編譯程序。如果修改源程序的成本比較大,那么可以使用一些方法在不改變源應用程序的情況下更改特定SQL的執(zhí)行計劃并固定下來。因為在SQL語句的執(zhí)行計劃發(fā)生更改時,可能存在性能風險。SQL計劃發(fā)生更改的原因有很多,如優(yōu)化程序版本、優(yōu)化程序統(tǒng)計信息、優(yōu)化程序參數(shù)、方案定義、系統(tǒng)設計和SQL概要文件創(chuàng)建等。有4種方式可以固定和控制執(zhí)行計劃,分別是使用Hint(提示)、OUTLINE(存儲概要)、SQLPROFILE(SQL概要文件)和SPM(SQLPlanManagemem,SQL計劃管理)。[考點]執(zhí)行計劃
10.
索引的優(yōu)缺點有哪些?正確答案:創(chuàng)建索引可以大大提高系統(tǒng)的性能,總體來說,索引的優(yōu)點如下:
1)大大加快數(shù)據(jù)的檢索速度,這也是創(chuàng)建索引的最主要的原因。
2)索引可以加速表和表之間的連接。
3)索引在實現(xiàn)數(shù)據(jù)的參照完整性方面特別有意義,例如,在外鍵列上創(chuàng)建索引可以有效地避免死鎖的發(fā)生,也可以防止當更新父表主鍵時,數(shù)據(jù)庫對子表的全表鎖定。
4)索引是減少磁盤I/O的許多有效手段之一。
5)當使用分組(GROUPBY)和排序(ORDERBY)子句進行數(shù)據(jù)檢索時,可以顯著減少查詢中分組和排序的時間,大大加快數(shù)據(jù)的檢索速度。
6)創(chuàng)建唯一性索引,可以保證數(shù)據(jù)庫表中每一行數(shù)據(jù)的唯一性。
7)通過使用索引,可以在查詢的過程中,使用優(yōu)化隱藏器,提高系統(tǒng)的性能。
索引的缺點如下:
1)索引必須創(chuàng)建在表上,不能創(chuàng)建在視圖上。
2)創(chuàng)建索引和維護索引要耗費時間,這種時間隨著數(shù)據(jù)量的增加而增加。
3)建立索引需要占用物理空間,如果要建立聚簇索引,那么需要的空間會很大。
4)當對表中的數(shù)據(jù)進行增加、刪除和修改的時候,系統(tǒng)必須要有額外的時間來同時對索引進行更新維護,以維持數(shù)據(jù)和索引的一致性,所以,索引降低了數(shù)據(jù)的維護速度。[考點]基本概念
11.
后臺進程、服務器進程和用戶進程之間的區(qū)別是什么?正確答案:后臺進程、服務器進程和用戶進程間的關系如下圖所示。
(1)USERPROCESS(用戶進程)
用戶進程指的是Oracle客戶端進程。例如,常用的Oracle的SQL*Plus就是最常用的客戶端進程。
(2)SERVERPROCESS(服務器進程)
服務器進程指的是與客戶端連接的服務器端的后臺進程。對于每個前臺的用戶進程,后臺都有一個服務器進程與之對應。服務器主要是通過它和用戶進程進行聯(lián)系、溝通及進行數(shù)據(jù)的交換。
(3)BACKGROUNDPROCESSES(后臺進程)
后臺進程是Oracle的程序,在Oracle實例啟動的時候啟動,用來管理數(shù)據(jù)庫的讀寫、恢復和監(jiān)視等工作,例如PMON、SMON等進程。后臺進程是Oracle實例的核心。
在UNIX操作系統(tǒng)上,Oracle的后臺進程對應于操作系統(tǒng)進程,也就是說,一個Oracle后臺進程將啟動一個操作系統(tǒng)進程;在Windows操作系統(tǒng)上,Oracle的后臺進程對應于操作系統(tǒng)線程,打開任務管理器,只能看到一個ORACLE.EXE的進程,但是通過另外的工具,就可以看到包含在ORACLE.EXE進程中的線程。[考點]后臺進程
12.
分區(qū)表有哪幾類?如何選擇用哪種類型的分區(qū)表?正確答案:Oracle的分區(qū)可以分為范圍分區(qū)(RANGEPARTITION)、哈希分區(qū)(HASHPARTITION)、列表分區(qū)(IISTPARTITION)、復合分區(qū)(組合分區(qū))、INTERVAL分區(qū)(間隔分區(qū))和系統(tǒng)分區(qū)。其中,INTERVAL分區(qū)和系統(tǒng)分區(qū)是Oracle11g的新特性,尤其INTERVAL分區(qū)在生產(chǎn)環(huán)境中還是比較實用的。對于海量數(shù)據(jù)的數(shù)據(jù)庫設計,分區(qū)的設計非常重要。例如,對于一個大表,應該采用哪種類型的分區(qū),對于以后數(shù)據(jù)庫的性能和管理至關重要。其實,范圍分區(qū)、哈希分區(qū)和列表分區(qū)這三種分區(qū)的特點都非常明顯:
1)如果需要進行數(shù)據(jù)的過期化處理,那么范圍分區(qū)基本上是唯一的選擇。
2)如果需要數(shù)據(jù)的均勻分布,那么可以考慮使用哈希分區(qū)。
3)如果數(shù)據(jù)的值可以很好地對應于某個分區(qū),那么就可以考慮使用列表分區(qū)。
在上面的原則基礎上,再結合性能的影響因素,來最終確定使用哪種類型的分區(qū)。
如果選擇的分區(qū)不能確保各分區(qū)內(nèi)數(shù)據(jù)量的基本平均,那么這種分區(qū)方式有可能是不恰當?shù)摹1热鐚τ赗ANGE分區(qū),假設分了10個分區(qū),而其中一個分區(qū)中的記錄數(shù)占總記錄數(shù)的90%,其他9個分區(qū)只占總記錄數(shù)的10%,則這個分區(qū)方式就起不到數(shù)據(jù)平衡的作用。[考點]分區(qū)表
13.
Oracle數(shù)據(jù)庫在物理上是由哪些文件組成的?正確答案:Oracle數(shù)據(jù)庫物理結構如下圖所示。
Oracle數(shù)據(jù)庫的物理結構由控制文件(ControlFiles)、數(shù)據(jù)文件(DataFiles)、聯(lián)機Redo日志文件(OnlineRedoLogFiles)、參數(shù)文件(ParameterFile)、歸檔日志文件(ArchiveLogFiles)和密碼文件(PasswordFile)組成。
1)控制文件:包含維護和驗證數(shù)據(jù)庫完整性的必要信息,其中記錄了數(shù)據(jù)庫的物理結構。例如,控制文件用于識別數(shù)據(jù)文件和Redo日志文件。每個Oracle數(shù)據(jù)庫都有相應的控制文件,一個數(shù)據(jù)庫至少需要一個控制文件,控制文件屬于二進制文件??刂莆募拿袷酵ǔ閏tr*.ctl。
2)數(shù)據(jù)文件:存儲數(shù)據(jù)的文件。
3)聯(lián)機Redo日志文件:包含對數(shù)據(jù)庫所做的更改記錄,一個數(shù)據(jù)庫至少需要兩組聯(lián)機Redo日志文件。聯(lián)機Redo日志文件也叫在線重做日志文件或聯(lián)機重做日志文件。
4)參數(shù)文件:定義Oracle實例的特性,分為SPFILE和PFILE兩種類型的參數(shù)文件。
5)歸檔文件:歸檔文件是聯(lián)機Redo日志文件的脫機副本,這些歸檔文件對于介質恢復很重要。
6)密碼文件:認證哪些用戶有權限啟動和關閉Oracle實例。
Oracle中邏輯結構包括表空間(TABLESPACE)、段(SEGMENT)、區(qū)(EXTENT)和塊(BLOCK)。數(shù)據(jù)庫由表空間構成,而表空間又由段構成,段又由區(qū)構成,區(qū)又由Oracle塊構成,即塊→區(qū)→段→表空間→數(shù)據(jù)庫。[考點]物理結構
14.
假定一個部門的數(shù)據(jù)庫包括以下信息。
1)職工的信息:職工號、姓名、地址和所在部門。
2)部門的信息:部門所有職工、部門名、經(jīng)理和銷售的產(chǎn)品。
3)產(chǎn)品的信息:產(chǎn)品名、制造商、價格、型號及產(chǎn)品的內(nèi)部編號。
4)制造商的信息:制造商名稱、地址、生產(chǎn)的產(chǎn)品名和價格。
試畫出這個數(shù)據(jù)庫的E-R圖。正確答案:本題對應的E-R圖如下圖所示。
[考點]E-R模型
15.
在表中建立了索引以后,導入大量數(shù)據(jù)為什么會很慢?正確答案:對已經(jīng)建立了索引的表中插入數(shù)據(jù)時,插入一條數(shù)據(jù)就要對該記錄按索引排序。因此,導入大量數(shù)據(jù)的時候速度會很慢。解決這種情況的辦法是,在沒有任何索引的情況插入數(shù)據(jù),然后建立索引。[考點]索引
16.
如何格式化輸出結果?正確答案:可以使用column命令。[考點]SHELL腳本系列
17.
如何隨機抽取表SCOTT.EMP的前5條記錄?正確答案:使用SYS_GUID或DBMS_RANDOM.VALUE函數(shù),如下:
SELECT*FROM(SELECT*FROMSCOTT.EMPORDERBYSYS_GUID())WHEREROWNUM<=5;
SELECT*FROM(SELECT*FROMSCOTT.EMPORDERBYDBMS_RANDOM.VALUE)WHEREROWNUM<=5;
18.
軟件生存期有哪幾個階段?正確答案:軟件定義時期、軟件開發(fā)時期、軟件維護時期。[考點]數(shù)據(jù)庫系統(tǒng)的組成與結構
19.
RMAN是什么?RMAN的特點有哪些?正確答案:為了更好地實現(xiàn)數(shù)據(jù)庫的備份和恢復工作,Oracle提供了恢復管理器(RecoveryManager,RMAN)。RMAN是一個可以用來備份、恢復和還原數(shù)據(jù)庫的應用程序,是隨Oracle服務器軟件一同安裝的Oracle工具軟件,通過執(zhí)行相應的RM
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 免疫性疾病的飲食輔助
- 遼寧省2025秋九年級英語全冊Unit5Whataretheshirtsmadeof課時6SectionB(3a-SelfCheck)課件新版人教新目標版
- 2025年濕電子化學品項目發(fā)展計劃
- 干性皮膚的清潔與保養(yǎng)方法
- 腹瀉的藥物治療與護理配合
- 術前焦慮的識別與干預策略
- 護理實踐中的問題解決與決策制定
- 心臟瓣膜疾病的護理與跨學科合作
- 子宮肉瘤患者的日常護理
- 體位引流護理的社區(qū)推廣應用
- 物流金融風險管理
- 國開24273丨中醫(yī)藥學概論(統(tǒng)設課)試題及答案
- 國家開放大學電大《當代中國政治制度(本)》形考任務4試題附答案
- 河道臨時圍堰施工方案
- 2025年廣東省公需課《人工智能賦能制造業(yè)高質量發(fā)展》試題及答案
- 有機肥可行性研究報告
- 2025年-基于華為IPD與質量管理體系融合的研發(fā)質量管理方案-新版
- 法律職業(yè)資格考試客觀題(試卷一)試卷與參考答案(2025年)
- 腹壁下動穿支課件
- 廣西協(xié)美化學品有限公司年產(chǎn)7400噸高純有機過氧化物項目環(huán)評報告
- 智慧樹知道網(wǎng)課《艾滋病、性與健康》課后章節(jié)測試答案
評論
0/150
提交評論