oracle數(shù)據(jù)庫開發(fā)面試題2017
ORACLE數(shù)據(jù)庫系統(tǒng)是美國(guó)ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫為核心的一組軟件產(chǎn)品,是目前最流行的客戶/服務(wù)器(CLIENT/SERVER)或B/S體系結(jié)構(gòu)的數(shù)據(jù)庫之一。下面是關(guān)于oracle數(shù)據(jù)庫開發(fā)面試題,希望大家認(rèn)真閱讀!
1、對(duì)數(shù)據(jù)庫SQL2005、ORACLE熟悉嗎?
SQL2005是微軟公司的數(shù)據(jù)庫產(chǎn)品。是一個(gè)RDBMS數(shù)據(jù)庫,一般應(yīng)用在一些中型數(shù)據(jù)庫的應(yīng)用,不能跨平臺(tái)。
ORACLE是ORACLE公司的數(shù)據(jù)產(chǎn)品,支持海量數(shù)據(jù)存儲(chǔ),支持分布式布暑,支持多用戶,跨平臺(tái),數(shù)據(jù)安全完整性控制性能優(yōu)越,是一個(gè)ORDBMS,一般用在大型公司。
2、能不能設(shè)計(jì)數(shù)據(jù)庫?如何實(shí)現(xiàn)數(shù)據(jù)庫導(dǎo)入與導(dǎo)出的更新
使用POWERDISINE工具的使用,一般滿足第三范式就可以了。EXP與IMP數(shù)據(jù)庫的邏輯導(dǎo)入與導(dǎo)出
3、如何只顯示重復(fù)數(shù)據(jù),或不顯示重復(fù)數(shù)據(jù)
顯示重復(fù):select * from tablename group by id having count(*)>1
不顯示重復(fù):select * from tablename group by id having count(*)=1
4、什么是數(shù)據(jù)庫的映射
就是將數(shù)據(jù)庫的表與字段對(duì)應(yīng)到模型層類名與屬性的過程.
5、寫分頁有哪些方法,你一般用什么方法?用SQL語句寫一個(gè)分頁?
如何用存儲(chǔ)過程寫分頁?
在SQLSERVER中使用TOP分頁,在ORACLE中用ROWNUM,或分析函數(shù)ROW_NUMBER
使用TOP:
select top 20,n.* from tablename n minus select top 10,m.* from tablename m
使用分析函數(shù):
select * from
(select n.*,row_number() over(order by columnname) num from tablename n)
where num>=10 and num <=20;
使用過程時(shí),只要將分頁的范圍用兩個(gè)參數(shù)就可以實(shí)現(xiàn)。在ORACLE中,要將過程封裝在包里,還要用動(dòng)態(tài)游標(biāo)變量才能實(shí)現(xiàn)數(shù)據(jù)集的返回。
6、ORACLE中左連接與右連接
左連接:LEFT JOIN 右連接:RIGHT JOIN
select n.column,m.column from tablename1 n left join tablename2 m
on n.columnname=m.columnname
用WHERE實(shí)現(xiàn):
select n.column,m.column from tablename1 n, tablename2 m
where n.columnname(+)=m.columnname
7、什么是反射、序列化、反序列化?事務(wù)有幾種級(jí)別?
反射是在程序運(yùn)行時(shí)動(dòng)態(tài)訪問DDL的一種方式。序列化是將對(duì)象對(duì)二進(jìn)制、XML等方式直接向文件的存儲(chǔ)。反序列化是將存儲(chǔ)到文件的對(duì)象取出的過程。事務(wù)的級(jí)別的三種:頁面級(jí)、應(yīng)用程序級(jí)、數(shù)據(jù)庫級(jí)。
8、數(shù)據(jù)測(cè)試如何測(cè)試?
在PLSQL里對(duì)過程或函數(shù)可能通過專用的測(cè)試工具,通過對(duì)
9、用事務(wù)的時(shí)候,如果在業(yè)務(wù)邏輯層中,調(diào)用數(shù)據(jù)庫訪問層中的方法,訪問層中有很多類,類又有很多方法,每個(gè)方法都要實(shí)現(xiàn),那么如何處理?
通用數(shù)據(jù)訪問層的實(shí)現(xiàn)
10、什么時(shí)候會(huì)用到觸發(fā)器
A安全管理、B日志管理、C復(fù)雜業(yè)務(wù)邏輯實(shí)現(xiàn)
11、如何在數(shù)據(jù)庫中顯示樹控制?
用父ID與子ID來實(shí)現(xiàn)
12、如何實(shí)現(xiàn)數(shù)據(jù)庫的優(yōu)化?
A、調(diào)整數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)。這一部分在開發(fā)信息系統(tǒng)之前完成,程序員需要考慮是否使用ORACLE數(shù)據(jù)庫的分區(qū)功能,對(duì)于經(jīng)常訪問的數(shù)據(jù)庫表是否需要建立索引等。
B、調(diào)整應(yīng)用程序結(jié)構(gòu)設(shè)計(jì)。這一部分也是在開發(fā)信息系統(tǒng)之前完成,程序員在這一步需要考慮應(yīng)用程序使用什么樣的體系結(jié)構(gòu),是使用傳統(tǒng)的Client/Server兩層體系結(jié)構(gòu),還是使用Browser/Web/Database的三層體系結(jié)構(gòu)。不同的'應(yīng)用程序體系結(jié)構(gòu)要求的數(shù)據(jù)庫資源是不同的。
C、調(diào)整數(shù)據(jù)庫SQL語句。應(yīng)用程序的執(zhí)行最終將歸結(jié)為數(shù)據(jù)庫中的SQL語句執(zhí)行,因此SQL語句的執(zhí)行效率最終決定了ORACLE數(shù)據(jù)庫的性能。ORACLE公司推薦使用ORACLE語句優(yōu)化器(Oracle Optimizer)和行鎖管理器(row-level manager)來調(diào)整優(yōu)化SQL語句。
D、調(diào)整服務(wù)器內(nèi)存分配。內(nèi)存分配是在信息系統(tǒng)運(yùn)行過程中優(yōu)化配置的,數(shù)據(jù)庫管理員可以根據(jù)數(shù)據(jù)庫運(yùn)行狀況調(diào)整數(shù)據(jù)庫系統(tǒng)全局區(qū)(SGA區(qū))的數(shù)據(jù)緩沖區(qū)、日志緩沖區(qū)和共享池的大小;還可以調(diào)整程序全局區(qū)(PGA區(qū))的大小。需要注意的是,SGA區(qū)不是越大越好,SGA區(qū)過大會(huì)占用操作系統(tǒng)使用的內(nèi)存而引起虛擬內(nèi)存的頁面交換,這樣反而會(huì)降低系統(tǒng)。
E、調(diào)整硬盤I/O,這一步是在信息系統(tǒng)開發(fā)之前完成的。數(shù)據(jù)庫管理員可以將組成同一個(gè)表空間的數(shù)據(jù)文件放在不同的硬盤上,做到硬盤之間I/O負(fù)載均衡。
F、調(diào)整操作系統(tǒng)參數(shù),例如:運(yùn)行在UNIX操作系統(tǒng)上的ORACLE數(shù)據(jù)庫,可以調(diào)整UNIX數(shù)據(jù)緩沖池的大小,每個(gè)進(jìn)程所能使用的內(nèi)存大小等參數(shù)。
【oracle數(shù)據(jù)庫開發(fā)面試題2017】相關(guān)文章:
Oracle數(shù)據(jù)庫開發(fā)技巧08-19
2017年oracle數(shù)據(jù)庫面試題精選06-08
2017年Oracle面試題05-24
oracle數(shù)據(jù)庫開發(fā)規(guī)范具體條件10-28
2017年oracle數(shù)據(jù)庫認(rèn)證考試11-03