2024年oracle开发人员面试题_第1页
2024年oracle开发人员面试题_第2页
2024年oracle开发人员面试题_第3页
2024年oracle开发人员面试题_第4页
2024年oracle开发人员面试题_第5页
已阅读5页,还剩16页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

壹、基础概念

1.列举几种表连接方式

Answer:等连接(内连接)、非等连接、自连接、外连接(左、右、全)

Orhashjoin/mergejoin/nestloop(clusterjoin)/indexjoin??

ORACLE8i,9i表连接措施。

壹般的相等连接:select*froma,bwherea.id=b.id;IS俯]就属于内连

接。

封于外连接:

Oracle中可以使用“(+)”来表达,9i可以使用LEFT/RIGHT/FULLOUTERJOIN

LEFTOUTERJOIN:左外关联

SELECTe.last_name,e.department_id,d.department_name

FROMemployeese

LEFTOUTERJOINdepartmentsd

ON(e.department_id=d.department_id);

等价于

SELECTe.last_name,e.department」d,d.department_name

FROMemployeese,departmentsd

WHEREe.departmentid=d.department!d(+)

成果卷:所有员工及封应部门的记录,行括没有封应部门编号department_id

的员工记录。

RIGHTOUTERJOIN:右外关联

SELECTe.lastname,c.department/d,d.departmentname

FROMemployeese

RIGHTOUTERJOINdepartmentsd

ON(e.department」d=d.department」d);

等价于一一

SELECTe.lastname,e.departmentid,d.departmentname

FROMemployeese,departmentsd

WHEREe.department_id(+)=d.department—id

成果悬:所有员工及封应部门的记录,包括没有任何员工的部门记录。

FULLOUTERJOIN:全外关联

SELECTe.last_name,e.department_id,d.department_name

FROMemployeese

FULLOUTERJOINdepartmentsd

ON(e.department_id=d.department_id);

成果卷:所有员工及封应部门的记录,包括没有封应部门编号department_id

的员工记录和没有任何员工的部门记录。

0RACLE8i是不直接支持完全外连接的言吾法,也就是St不能在左右两(0表上同步

加上(+),下面是在0RACLE8i可以参照的完全外连接^法

selecttl.id,t2.idfromtableltl,tablet2wheretl.id=t2.id(+)

union

select11.id,t2.idfromtableltl,tablet2wheretl.id(+)=t2.id

连接类型

定义图示例子

内连接只连接匹配的行selectA.cl,B.c2fromAjoinBonA.c3=B.c3;

左外连接包括左边表的所有行(不管右边的表中与否存在与它俨1匹配的行)以

及右边表中所有匹配的行selectA.cl,B.c2fromAleftjoinBonA.c3=B.c3;

右外连接包括右边表的所有行(不管左边的表中与否存在与它优匹配的行)以

及左边表中所有匹配的行selectA.cl,B.c2fromArightjoinBonA.c3=B.c3;

全外连接包括左、右两他表的所有行,不管在另壹边的表中与否存在与它俨J匹

配的行selectA.cl,B.c2fromAfulljoinBonA.c3=B.c3;

(theta)连接使用等值以外的条件来匹配左、右两倜表中的行select

A.cl,B.c2fromAjoinBonA.c3!=B.c3;

交叉连接生成笛卡尔积一一它不使用任何匹配或者选用条件,而是直接将壹种

数据源中的每他I行与另壹种数据源的每他1行壹壹匹配selectA.cl,B.c2

fromA,B;

2.不借助第三方工具,怎样查看sql的执行计划

I)使用ExplainPlan,查询PLAN_TABLE;

EXPLAINPLAN

SETSTATEMENT」。:'QUERY1z

FOR

SELECT*

FROMa

WHEREaa=l;

SELECToperation,options,objectname,objecttype,ID,parent_id

FROMplantable

WHERESTATEMENT」。=4QUERYV

ORDERBYID;

IDSQLPLUS中的SETTRACE即可看到ExecutionPlanStatistics

SETAUTOTRACEON;

3.怎样使用CBO,CBO与RULE的区别

IF初始化参数OPTIMIZER_MODE=CHOOSETHEN-(81DEFAULT)

IF做遇表分析

THEN优化器Optimizer=CBO(COST);/*高效*/

ELSE

优化器Optimizer=RBO(RULE);/*高效*/

ENDIF;

ENDIF;

区别:

RBO根据规则选择最佳执行途径来运行查询。

CBO根据表记录找到最低成本的访冏数据的措施确定执行计划。

彳市用CRO需超S丰音.

1)需要常常封莪捻行ANALYZE命令谨行分析记录;

TT)需要稳定执行计划;

IH)需要使用提醒(Hint);

使用RULE需要注意:

I)选择最有效率的表名次序

II)优化SQL的写法;

在oplimizejmode=choose畤,假如表有记录信息(分区表外),优化器将选择

CBO,否则选RBOo

RBO遵照简朴的分级措施孥,使用15种级别要粘,常接受到查询,优化器将评估

使用到的要黠数目,然彳为选择最佳级别(至少的数量)的执行途径来运行查询。

CBO尝试找到最低成本的访冏数据的措施,篇了最大的吞吐量或最快的初始响应

畤间,计算使用不壹样的执行计划的成本,并选择成本最低的壹种,有关表的数据

内容的记录被用于确定执行计戈必

4.怎样定位重要(消耗资源多)的SQL

使用CPU多的顾客session

SELECTa.SID,spid,status,SUBSTR(a.program,1,40)prog,

a.terminal,a.SQL_TEXT,osuser,VALUE/60/100VALUE

FROMv$scssiona,v$proccssb,v$scsstatc

WHEREc.statistic#=12ANDc.SID=a.SIDANDa.paddr=b.addr

ORDERBYVALUEDESC;

selectsql_textfromvjsql

wherediskreads>1000or(executions>0andbuffergets/executions>

30000);

5.怎样跟踪某他1session的SQL

运用TRACE跟踪

ALTERSESSIONSETSQLTRACEON;

COLUMNSQLformata200;

SELECTmachine,sqltextSQL

FROMv$sqltexta,v$sessionb

WHEREaddress=sqladdress

ANDmachine='&A'

ORDERBYhash_value,piece;

execdbms_system.set_sql_trace_in_session(sid,serial#,&sql_trace);

selectsid,serial#fromv$sessionwheresid=(selectsidfromv$mystat

whererownum=1);

execdbms_system.set_ev(&sid,&serial#,&event_10046,&level_12,v);

6.SQL调至最关注的是什么

检查系统的1/0冏题

sar-d能检查整他系统的iostat(10statistics)

查看该SQL的responsetime(dbblockgets/consistentgets/physical

reads/sorts(disk))

7.^言兑你封索引的认识(索引的构造、封dml影响、射查询影响、■^何提高查

询性能)

索引有B-TREE、BIT、CLUSTER等类型。ORACLE使用了壹种复杂的自平衡B-tree

构造;壹般来在表上建立恰常的索引,查询畤曾改善查询性能。但在迤行插

入、删除、修改畤,同步畲暹行索引的修改,在性能上有壹定的影响。有索引且

查询条件能使用索引畤,数据库曾先度取索引,根据索引内容和查询条件,查询

出R0WID,再根据ROWID取出需要的数据。由于索引内容壹般比全表内容要少诸

多,因此通谩先^索引,能减少I/O,提高查询性能。

b-treeindex/bitmcipindex/functionindex/patitionalindex(loccil/globcil)

索引宜般能提高select/update/delete的性能,含■减少insert的速度,

8.使用索引查询壹定能提高查询的性能吗?卷何

壹般,通谩索引查询数据比全表扫描要快.不谩我何也必须注意到它的代价.

索引需要空间来存储,也需要定期维护,每富有记录在表中增减或索引列被修改

畤,索引自身也畲被修改.造意味著每条记录的INSERT,DELETE,UPDATE将悬此

多付出4,5次的磁盘I/O.由于索引需要额外的存储空间和处理,那些不必要的

索引反而曾使查询反应畴间变慢.使用索引查询不壹定能提高查询性能,索引范

国杳询(INDEXRANGESCAN)合用于两种状况:

基于壹种范围的检索,壹般查询返回成果集不不小于表中记录数的30%宜采用;

基于非唯壹性索引的检索

索引就是卷了提高查询性能而存在的,假如在查询中索引没有提高性能,只能^

是用冬昔了索引,或者讲是埸所不壹样

9.绑定变量是什么?绑定变量有什么优缺陷?

绑定变量是指在SQU吾句口使用变量,变化变量的值来变化SQL言吾句的执行成果。

是处:使用绑定变量,可以减少SQL句的解析,能减少数据库引擎消耗在SQL

^句解析上的资源。提高7编程效率和可靠性。减少访冏数据库的次数,就能实

际上减少ORACLE的工作量。

缺陷:常常需要使用勤态SQL的写法,由于参数的不壹样,也言午SQL的执行效率

不壹样;

绑定变量是相封文本变量来讲的,所谓文本变量是指在SQL直接善写查询条件,

追样的SQL在不壹样条件下需要反复解析,绑定变量是指使用变量来替代直接害

写条件,查询bindvalue在运行畤传递,然彳爰绑定执行。

是处是减少硬解析,减少CPU的争用,节省shared_pool

缺陷是不能使用histogram,sql优化比较困难

10.怎样稳定(固定)执行计划

可以在SQL言吾句中指定执行计划。使用HINTS;

queryrewriteenabled=true

startransformationenab1ed=true

optimizer_features_enable=9.2.0

创立并使用storedoutline

11.和排序有关的内存在8i和9i分别怎样调整,临畤表空间的作用是什么

SORTAREASIZE在迤行排序操作畤,假如排序的内容太多,内存凄不能所有放

下,则需要暹行外部排序,

此畴需要运用临畤表空间来寄存排序的中间成果。

8i中sort_area_size/sort_area_retained_size决定了排序所需要的内存,假

如排序操作不能在sort_area_size中完毕,就曾■用到temp表空间

9i中假如workareasizepo1icy=auto喘

排序在pga内迤行,壹般pga_aggregate_target的1/2。可以用来暹行disksort;

假如workcireci_size_policy=manual口寺,排序需要的内存由sort_cirea_size决

定,在执行orderby/groupby/distinct/union/createindex/index

rebuild/minus等操作畤,假如在pga或sort_area_size中不能完毕,排序将在

临畤表空间暹行(disksori),临畤表空间重要作用就是完毕系统中的disksort.

12.存在表T(a,b,c,d),要根据字段c排序彳为取第21—30条记录显示,台出

sql

SELECT*

FROM(SELECTROWNUMASrow_num,tmp_tab.*

FROM(SELECTa,b,c,d

FROMT

ORDERBYc)tmptab

WHEREROWNUM<=30)

WHERErow_num>=20

ORDERBYrow_num;

createtablet(anumber(,bnumber(,cnumber(,dnumber0;

/

begin

foriin1..300loop

insertintotvalues(mod(i,2),i/2,dbmsrandom.value(1,300),i/4);

endloop;

end;

/

select*from(selectc.*,rownumasrnfrom(select*fromtorderbyc

desc)c)wherernbetween21and30;

/

select*from(select*fromtestorderbycdess)xwhererownum<30

minus

select*from(select*fromtestorderbycdes。)ywhererownum<20

orderby3desc

相比之minus性能较差

二:数据库基本概念类

1Pctusedandpctfree表达什么含义有什么作用

pctused与pctfree控制数据块与否出目前freelist中,pctfree控制数据块中

保留用于update的空间,常数据块中的freespace不不小于pctfree设置的空

间畤,该数据块优freelist中去掉,常块由于dml操作freespace不小于

pctused设置的空间畤,该数据库块将被添加在freelist链表中。

2简朴描述tablespace/segment/extent/block之间的关系

tablespace:壹种数据库划分卷壹种或多种逻辑军位,该逻辑罩位成■^表空间;

每壹种表空间也言午包括壹种或多种Segment;

Segments:Segment指在tablespace中卷特定逻辑存储构造分派的空间。每壹

种段是由壹种或多种extent构成。包括数据段、索引段、回滚段和临畤段。

Extents:壹种extent由壹系列持续的Oracleblocks构成.ORACLE通

extent来幺合segment分派空间。

DataBlocks:Oracle数据库最小的I/O存储罩位,壹种datablock封应壹种

或多种分派条台datafile的操作系统块。

table创立日寺,默认创立了壹种datasegment,每datasegment具有min

extents指定的extents数,每值]extent据据表空间的存储参数分派壹定数量的

blocks

3描述tciblespcice和datafile之间的关系

登种表空间可包括登种或多种数据文献。表空间运用增良或扩展数据文献扩大表

空间,表空间的大小卷构成该表空间的数据文献大小的和。壹种datafile只能

属于壹种表空间;

登种tablespace可以有壹种或多种datafile,每佰]datafile只能在登种

tablespace内,table中的数据,通遇hash算法分布在tablespace中的各(Bl

datafile中,tablespace是逻辑上的概念,datafile则在物理上储存了数据库的

种种封象。

4常地管理表空间利字典管理表空间的特钻,ASSM有什么特助

常地管理表空间:(9i默认)空闲块列表存储在表空间的数据文献gg。

特黠:减少数据字典表的竞争,常分派和收缩空间畴曾产生回滚,不需要合并。

字典管理表空间:(8i默认)空闲块列表存储在数据走中的字典表事.

特黠:片由数据字典管理,也言午导致字典表的争用。存储在表空间的每壹种段都

曾有不壹样的存储字句,需要合并相邻的块;

常地管理表空间(LocallyManagedTablespace简称LM「)

8i彳麦来出猊的壹种新的表空间的管埋模式,通遇位图来管埋表空间的空间使用。

字典管理表空间(Dictionary-ManagedTablespace简称DMT)

81此前包括彳爰来都遢可以使用的壹种表空间管理模式,通谩数据字典管理表空

间的空间使用。勃段空间管理(ASSM),它初次出目前0racle920裹有了ASSM,

链接列表freelist被位图所取代,它是壹种二暹制的数组,

可以迅速有效地管理存储扩展和剩余区块(freeblock),因此可以改善分段存

储本质,ASSM表空间上创立的段尚有此外壹种称呼喊BitmapManagedSegments

(BMB段)。

5回滚段的作用是什么

回滚段用于保留数据修改前的映象,造些信息用于生成^壹致性数据库信息、在

数据库恢复和RollbackI特使用。壹种事务只能使用壹种回滚段。

事务回滚:富事务修改表中数据的畤候,该数据修改前的值(即前影像)畲寄存

在回滚段中,富顾客回滚事务(ROLLBACK)畤,ORACLE将曾运用回滚段中的数

据前影像来将修改的数据恢复到本来的值。

事务恢复:富事务止在处理的畤候,例程失败,回滚段的信息保留在undo表空

间中,ORACLE将在下次打^数据库畤运用回滚来恢复未提交的数据。

^壹致性:富壹种包话正在修改数据畤,其他的曾话将看不到该曾话未提交的修

改。富壹种言吾句正在执行畤,该^句将看不到拢该言吾句^始执行彳发的未提交的

修改(gS句级^壹致性)

富ORACLE执行SELECT言吾句畴,ORACLE根据目前的系统变化号(SYSTEMCHANGE

NUMBER-SCN)来保证任何前于R前SCN的未提交的变化不被该言吾句处理。可以

想象:富壹种是畤间的查询正在执行日寺,若其他畲话变化了该查询要查询的某

彳固数据块,ORACLE将运用回滚段的数据前影像来构造壹种^壹致性视图

6日志的作用是什么

日志文献(LogFile)记录所有封数据库数据的修改,重要是保护数据库以防止

故障,以及恢复数据畴使用。其特黠如下:

a)每壹种数据库至少包括两值I日志文献组。每值1日志文献组至少包括两值I曰忐文

献组员。

b)曰志文献组以循环方式迤行写操作。

c)每壹种日志文献组员封应壹种物理文献。

记录数据库事务,最大程度地保证数据的壹致性与安全性

重做曰志文献:含封数据库所做的更改记录,造样寓•壹出?B故障可以启用数据恢

复,壹种数据库至少需要两他重做日志文献

归档曰志文献:是重做日志文献的脱机副本,追些副本也^^于优介质失败中迤

行恢友很必要。

7SGA重要有那些部分,重要作用是什么

系统全局区(SGA):是ORACLE卷实例分派的壹组共享缓冲存储区,用于寄存数

据库数据和控制信息,以实封数据库数据的管理和操作。

SGA重要包括:

a)共享池(sharedpool):用来存储近来执行的SQL言吾句和近来使用的数据字典

的数据。

b)数据缓冲区(databasebuffercache):用来存储近来徙数据文献中考寅写^的

数据。

c)重作曰志缓冲区(red。logbuffer):用来记录服务或彳爱台谨程封数据库的

操作。

此外在SGA中尚有两值I可选的内存构造:

d)Javapool:用来存储Java代码。

e)Largepool:用来存储不与SQL直接有关的大型内存构造。备份、恢复使用。

GA:dbcache/sharedpool/lcirgepool/javapool

db_cache:数据库缓存(BlockBuffer)封于Oracle数据库的运转和性能起著

非常关键的作用,它占据Oracle数据库SGA(系统共享内存区)的重要部分。

Oracle数据库通谩使用LRU算法,将近来访冏的数据块寄存到缓存中,优而优

化封磁盘数据的访冏.

shared_pool:共享池的大小螯寸于Oracle性能来^都是很重要的。共享池中保

留数据冬典高速缓冲和完全解析或编译的的PL/SQL块和SQL言吾句及控制构造

large_pool:使用MTS配置畴,由于要在SGA中分派UGA来保持顾客的曾话,就

是用Largepool来保持道彳固曾话内存使用RMAN做备份的畤候,要使用

Largepool适值1内存构造来做磁盘I/O缓存器

java_pool:篇javaprocedure预备的内存区域,假如没有使用java

proc,javapool不是必须的

8Oracle系统暹程重要有哪些,作用是什么

数据写暹程(DBWR):负责将更改的数据彳定数据库缓冲区高速缓存写入数据文献

曰志写暹程(LGWR):将重做曰志缓冲区中的更改写入在线重做日志文献

系统监控(SMON):检查数据库的壹致性如有必要遢含在数据库打^畤启勤数据

库的恢复

暹程监控(PMON):负责在壹种Oracle迤程失败畤清理资源

检查黠暹程(CKPT):负责在每富缓冲区高速缓存中的更改永久地记录在数据库中

畴,更新控制文献和数据文献中的数据库状态信息。

归档暹程(ARCH):在每次曰忐切换畤把已满的曰志组迤行备份或归档

恢复暹程(RECO):保证分布式事务的壹致性,在分布式事务中,要么同步

commit,要么同步rollback;

作业调度器(CJQ):负责将调度与执行系统中已定义好的job,完毕某些预定义

的工作.

三:备份恢复类

]备份怎样分类

逻辑备份:exp/i叩指定表的逻辑备份

物理备份:

热备份:altertablespacebegin/endbackup;

冷备份:脱机备份(databaseshutdown)

RMAX备份

fullbackup/incrementalbackup(累积/差异)

物理备份

物理备份是最重要的备份方式。用于保证数据库在最小的数据库丢失或没有数据

丢失的状况下得到恢复。

冷物埋

冷物理备份提供了最简朴和最直接的措施保护数据库区物理损1裳丢失。提议在如

下几种状况中使用。

封壹种已^存在大最数据量的数据库,在晚间数据库可以关闭,此畤应用冷物理

备份。

封需封数据库服务器暹行升级,(如更换硬盘),此畤需要备份数据库信息,并

在新的硬盘中恢复造些数据信息,提议采用冷物理备份。

热物理

重要是指备份遇程在数据库打^并且顾客可以使用的状况下暹行。需要执行热物

理备份的状况有:

由于数据库性质规定不间断工作,因而此峙只能采用热物理备份。

由于备份的规定的畤间谩房,而数据库只能短畤间关I光畤。

逻辑备份(EXP/IMP)

逻辑备份用于实垣数据库封象的恢复。但不是基于畤问黠可完全恢复的备份方

略。只能作卷联机备份和脱机备份的壹种补充。

完全逻辑备份

完全逻辑备份是将整值I数据库导出到壹种数据库的格式文献中,该文献可以在不

壹样的数据库版本、操作系统和硬件平台之间迤行移植。

指定表的逻辑备份

通谩备份工具,可以将指定的数据库表备份出来,造可以防止完全逻辑备份所带

来的畤间和财力上的挥霍,

2归档是什么含义

有关归档日志:Oracle要将填满的在线日志文献组归档日寺,则要建立归档日志

(archivedredolog).其封数据库备份和恢复有下列用处:

数据库彳灸备以及在线和归档日志文献,在操作系统和磁盘故障中可保证所有提交

的事物可被恢复。

在数据库打^和正常系统使用下,假如归档曰志是永久保留,在线彳友备可以诞行

和使用。

数据库可运行在两种不壹样方式下:NOARCH1VELOG方式或ARCHIVELOG方式

数据库在NOARCHIVELOG方式下使用H寺,不能暹行在线日志的归档,

数据库在ARCHIVELOG方式下运行,可实行在线日志的归档

归档是归档目前的联机redo曰志文献。

SVRMGR>altersystemarchivelogcurrent;

数据库只有运行在ARCIIIVELOG模式下,并且可以迤行自助归档,才可.以迤行联

机备份。有了联机备份才有也^迤行完全恢复。

3假如壹种表在-08-0410:30:00被drop,在有完善的归档和备份的状况下,

怎样恢复

9i新增的FLASHBACK应常可以;

Logmincr应常可以找出DMLo

有完善的归档和备份,先归档目前数据,然彳爰可以先恢复到删除的畤间黠之前,

把DROP的表导出来,然彳爰再恢复到最终归档畤间;

手工拷贝回所有备份的数据文献

Sql)startupmount;

sql)alterdatabaserecoverautomaticuntiltime'-08-04:10:30:00";

sql)alterdatabaseopenresetlogs;

4rman是什么,有何特要占

RMAX(RecoveryManager)是DBA的壹种重要工具,用于警份、遢原和恢复oracle

数据库,RMAN可以用来备份和恢复数据库文献、归档日志、控制文献、系统参

数文献,也可以用来执行完全或不完全的数据库恢复。

RMAN有三种不壹样的顾客接口:COMMANDLINE方式、GUI方式(集成在OEM中

的备份管理器)、APIW式(用于集成到第三方的备份软件中)。

具有如下特粘:

1)功能类似物理备份,但比物理备份强大N倍;

2)可以压缩空块;

3)可以在块水平上实现增量;

4)可以把备份的输出打包成备份集,也可以按固定大小分割备份集;

5)备份与恢复的谩程可以自勃管理;

6)可以使用脚本(存在Recoverycatalog中)

7)可以做塌块监测

5standby的特玷

备用数据库(standbydatabase):ORACLE推出的壹种高可用性(HIGHAVAILABLE)

数据库方案,在主节钻与各用节黠间通谩曰志同步来保证数据的同步,备用节钻

作悬主节黠的备份,可以实现迅速切换与劫难性恢复,优9201^始,始支持

物理与逻辑备用服务器。

9i中的三种数据保护模式分别是:

1)、MAXIMIZEPROTECTION:最大数据保护与辗数据分歧,LGWR将同步传送到

备用节黠,在主节黠事务确认之前,备用节黠也必须完全收到日志数据。假如网

络不好,引起LGWR不能传送数据,将引起严重的性能^题,导致主节黠DOWN

机。

2)>MAXIMIZEAVAILABILITY:辗数据丢失模式,容言午数据分歧,容言午异步传送。

正常状况下运行在最大保护模式,在主节钻与备用节黠的网络断日月或连接不正常

畤,自勤切换到最大性能模式,主节黠的操作遢是可以继续的。在网络不好的状

况下有较大的性能影响。

3)、MAXIMIZEPERFORMANCE:适种模式应富可以^是优8i继承遇来的备用服务

器模式,异步传送,辗数据同步检杳,也言午丢失数据,不遇能获得主节黠的最大

性能。9i在配置DATAGUARD的I侍候默认就是MAXIMIZEPERFORMANCE

6封于壹种规定恢复畤间比较短的系统(数据库50G,每天归档5G),你怎样设计

备份方略

数据库比较大逻辑备份没什么必要,每天归档5G,每周三/周六自勤归档10G,

每月RMAN归档全库。应富有standby。

rman/每月壹号level0每周末/周三level1其他每天level2

四:系统管理类

1.封于壹种存在系统性能的系统,1ft出你的诊断处理思绪

1做statspack搜集系统有关信息理解系统大体状况/确定与否存在参数设置

不合适的地方/查看top5event/查看topsql等

〕查v$systemevent/v$sassionevent/v$sessionwaitv$systemevent

始,确定需要什么资源(dbfilesequentialread)等,深入研究v$sessionevent,

确定等待事件波及的曹话,ft-v$scssion_wait确定详细的资源争用状况(pl-p3

的值:file一id/block_id/blocks等)

]通遇v$sql/v$sqltext/v$sqlarea表确定diskreads、

(buffcr_gets/executions)值较大的SQL

2.列举兀种诊断10、CPU、性能状况的措施

topuptimevmstatiostatstatspacksqltrace/tkprof

查v$systemevcnt/v$scssion_cvcnt/v$sessionwait

查v$sqlarea(diskreads或buffergets/executions较大的SQL)

或者第三方的监视工具,TOAD就不籍。

3.封statspack有何认识

认识不深。仅限理解。StapSpack是Oracle企业提供的壹种搜集数据库运行性

能指襟的软件包。可以做数据库健康检查汇报。

StapSpack是Oracle企业提供的壹种搜集数据库运行性能指襟的软件包,该软

件包拢8i起,在9i、10g均有明显的增强

该软件包的辅助表(存储有关参数与搜集的性能指襟的表)由最初的25(®增晨

到43

搜集级别参数由本来的310(0、5、10)增房到5f固(0、5、6、7、10)

通谩度析搜集的性能指襟,数据库管理员可以详细地理解数据库目前的运行状

况,封数据库实例、等待事件、SQL等暹行优化调整

运用statspack搜集的snapshot,可以记录制作数据库的多种性能指襟的记录趋

势图表。

4.假如系统目前需要在壹种很大的表上创立壹种索引,你畲考虑那些原因,怎

样做以尽量减小封应用的影响

可以先表分析壹下,然彳菱测试创立索引前彳令封应用的性能影响;

需要考虑的是该索引列不常常更新,不是有诸多反复值的状况畤,在大表中使用

索引尤其有效.创立的索引可以跟数据表分不壹样表空间存储。

在系统比较空闲畤nologging选项(假如有dataguard则不可以使用nologging)

大的sort_ared_size或pga_aggregate_target较大

5.BraidlO和raid5有何认识

RAID10(或称RAID1+0)与RAID0+1不壹样,它是用硬盘驱勤器先构成RAID1

阵列,然彳灸在RAID1阵列之间再构成RAID0阵列。

RAID10模式同RAID0+1模式同样具有良好的数据传播性能,但却比RAID0+1

具有更高的可靠性。RAID10阵列的实际容量^MXn/2,磁盘运用率悬50%。

RAID10也需要至少4催1硬盘驱励器构成,因而价格昂贵。

RAID10的可靠性同RAID1同样,但由于RAID10硬盘驱勤器之间有数据分割,

因而数据传播性能优良。

RAID5与RAID3很相似,不壹样之处在于RAID5的奇偶校验信息也同数据同

样被分割保留到所有的硬盘驱勤器,而不是写入壹种指定的硬盘驱勤器,优而消

除了里(周奇偶校验硬盘驱助器的瓶颈冏题。RAID5磁盘阵列的性能比RAID3有

所提高,但仍然需要至少3块硬盘驱勃器。其实际容量^\1><(联1),磁盘运用

率悬(n-l)/no

五:综合随意类

1.你最擅关的是oracle哪部分?

pl/sql及sql优化

2.喜欢oraclo吗?喜欢上论坛吗?或者偏好。raclc的哪壹部分?

喜欢。PL/SQL比较得心应手。

3.随意者兑者兑你受得oracle最故意思的部分或者最困难的部分

我封数据库的备份/恢复和性能调优^验明显局限性,自然^得有些困难。

基于ORACLE的研究应常是他I广阔的领域,因此我竟得遐是故意思的。

4.悬何要选择做DBA呢?

我封数据库的备份/恢复和性能调优^验明显局限性,重要是缺乏环境和交流。

因此,算不上什么DBAo不遇因此我更需要道样的机曾。

不谩就整他ORACLE来卷兑,壹直优事与它有关的工作,感情遐是颇深的。放弃可

惜。并且就技术自身而言我受得自己遢是有挚习和创新的能力,它的诸如数据仓

库,数据挖掘之类的领域也很广。

六:DatabasesQuestions&Answers

1.WhataretwomethodsofretrievingSQL?

2.Whatcursortypedoyouusetoretrievemultiplerecordsets?

3.Whatactiondoyouhavetoperformbeforeretrievingdatafromthenext

resultsetofastoredprocedure?

Movethecursordownonerowfromitscurrentposition.AResultSetcursor

isinitiallypositionedbeforethefirstrow.Beforeyoucangettothe

firstrow,youwouldneedtoMovethecursordownbyonerow(Forex:

injavathefirstcalltonextmakesthefirstrowthecurrentrow;the

secondcallmakesthesecondrowthecurrentrow,andsoon).

4.WhatisthebasicformofaSQLstatementtoreaddataoutofatab1e?

SELECT*FROMtablename;

5.Whatstructurecanyouhcivethedatabasemaketospeeduptciblereads?

Thequestionisnotcorrect."Whatstructurecanyouhavethedatabase

maketospeeduptablereads?nItisnotclearwhatexactlytheterm

ustructurewmeansinthiscase.FollowtherulesofDBtuningwehave

to:

1)properlyuseindexes(differenttypesofindexes)

2)properlylocatedifferentDBobjectsacrossdifferenttablespaces,

filesandsoon.

3)Createaspecialspace(tablespace)tolocatesomeofthedatawith

specialdatatypes(forexampleCLOB,LOBand…)

6.Whatisa“join”?

Joinsmergethedataoftworelatedtablesintoasingleresultset,

presentingadenormalizedviewofthedata.

7.Whatisa“constraint”?

Aconstraintallowsyoutoapplysimplereferentialintegritychecks

toatcible.Thereare5primarytypesofconstraintsthatarecurrently

supportedbySQLServer:

PRIMARY/UNIQUE-enforcesuniquenessofaparticulartablecolumn.

DEFAULT-specifiesadefaultvalueforacolumnincaseaninsert

operationdoesnotprovideone.

FOREIGNKEY-validatesthateveryvalueinacolumnexistsina

columnofanothertable.

CHECK-checksthateveryvaluestoredinacolumnisinsome

specifiedlist

NOTNULL-isaconstraintwhichdoesnotallowvaluesinthespecific

columntobenul1.Andalsoitistheonlyconstraintwhichisnotatable

levelconstraint.

8.Whatisauprimarykey"?

PrimaryKeyisatypeofaconstraintenforcinguniquenessanddata

integrityforeachrowofatable.Allcolumnsparticipatinginaprimary

keyconstraintmustpossesstheNOTNULLproperty.

9.Whatisafunctionaldependency?Howdoesitrelatetodatabase

tabledesign?

Whatfunctionaldependenceinthecontextofadatabasemeansisthat:

AssumethatatableexistsinthedatabasecalledTABLEwithacomposite

primarykey(A,B)andothernon-keyattributes(C,D,E).Functiontil

dependencyingeneral,wouldmeanthatanynon-keyattribute-CDor

Ebeingdependentontheprimarykey(AandB)inourtablehere.

Partialfunctionaldependency,ontheotherhand,isanother

corollaryoftheabove,whichstatesthatal1non-keyattributes-CD

orE-ifdependentonthesubsetoftheprimarykey(AandB)andnot

onitasawhole.

Example:

FullyF'unctionalDependent:CDE->AB

PartialFunctionaldependency:C->A,DE->B

Hopethathelps!

10.Whatisa"trigger”?

Atriggerisadatabaseobjectdirectlyassociatedwithaparticulartable.

Itfireswheneveraspecificstatement/typeofstatementisissuedagainst

thattable.Thetypesofstatementsareinsert,update,deleteandquery

statements.Basically,triggerisasetofSQLstatementsthatexecute

inresponsetoadatamodification/retrievaleventonatable.

Otherthantabletriggerstherearealsoschemaanddatabasetriggers.

Thesecanbemadetofirewhennewobjectsarecreated,whenauserlogs

in,whenthedatabaseshutdownetc.Tableleveltriggerscanbeclassified

intorowandstatementIsveltriggersandthosecanbefurtherbrokendown

intobeforeandaftertriggers.Beforetriggerscanmodifydata.

11.Whatis“indexcoveringMofaquery?

Anonclusteredindexthatincludes(orcovers)allcolumnsusedinaquery

iscalledacoveringindex.WhenSQLservercanuseanonclusteredindex

toresolvethequery,itwillprefertoscantheindexratherthanthe

table,whichtypicallytakesfewerdatapages.Ifyourqueryusesonly

columnsincludedintheindex,thenSQLservermayscanthisindexto

producethedesiredoutput.

12.WhatisaSQLview?

ViewisaprccompliedSQLquerywhichisusedtoselectdatafromoneor

moretables.Aviewislikeatablebutitdoesn"tphysicallytakeany

space.Viewisagoodwaytopresentdatainaparticularformatifyou

usethatqueryquiteoften.

Viewcanalsobeusedtorestrictusersfromaccessingthetablesdirectly.

Aviewotherwiseknownasavirtualtableisamerewindowoverthebase

tablesinthedatabase.Thishelpsusgainacoupleofadvantages:

1)Inherentsecurityexposingonlythedatathatisneededtobeshown

totheenduser

2)Viewsareupdateablebasedoncertainconditions.Forexample,updates

canonlybedirectedtooneunderlyingtableoftheview.After

modificationiftherowsorcolumnsdon'tcomplywiththeconditionsthat

theviewwascreatedwith,thoserowsdisappearfromtheview.Youcould

usetheCHECKOPTIONwiththeviewdefinition,tomakesurethatany

updatestomaketherowsinvalidwi11notbepermittedtorun.

3)Viewsarenotmaterialized(givenaphysicalstructure)inadatabase.

Eachtimeaviewisqueriedthedefinitionstoredinthedatabaseisrun

againstthebasetablestoretrievethedata.Onsexceptiontothisis

tocreateaclusteredindexontheviewtomakeitpersistentinthe

database.Onceyoucreateaclusteredindexontheview,youcancreate

anynumberofnon-clusteredindexesonthevicw.

13.存储谩程和函数的区别

存储遇程是顾客定义的壹系列sql^句的集合,波及特定表或其他卦象的任务,

顾客可以调用存储谩程,而函数壹般是数据库已定义的措施,它接受参数并返回

某种类型的值并且不波及特定顾客表。

14.事务是什么?

事务是作卷壹种逻辑军元执行的壹系列操作,壹种逻辑工作罩元必须有四倜属

性,称卷ACID(原子性、壹致性、隔离性和持久性)属性,只有道样才能成卷壹

种事务:

原子性:事务必须是原子工作军元;封于其数据修改,要么全都执行,要么全都

不执行。

壹致性:事务在完毕畤,必须使所有的数据都保持壹致状态。在有关数据库中,

所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务^束畴,所

有的内部数据构造(如B树索引或双向链表)都必须是封的的。

隔离性:由并发事务所作的修改必须与任何其他并发事务所作的修改隔离。事务

查看数据畤数据所处的状态,要么是另壹并发事务修改它之前的状态,要么是另

壹事务修改它之彳爰的状态,事务不畲查看中间状态的数据。道称卷可串行性,由

于它可以重新装载起始数据,并且重播壹系列事务,以变数据结束畤的状态与原

始事务执行的状态相似。

持久性:事务完毕之彳爰,它封于系统的影响是永久性的。该修改虽然出现系统故

障也将壹直保持。

15.游檄的作用?怎样懂得游檄已畿到了最终?

游襟用于定位成果集的行,通谩判断全局变量@@FETCHSTATUS可以判断与否到

了最终,壹般此变量不等于0表达出金昔或到了最终。

16.触发器分卷事前触发和事彳奏触发,道两种触发有和区别。^句级触发和行级

触发有何区别。

事前触发器运行于触发事件发生之前,而事彳麦触发器运行于触发事件发生之彳令。

壹般事前触发器可以获取事件之前和新的字段值。

言吾句级触发器可以在^句执行前或彳爰执行,而行级触发在触发器所影响的每壹行

触发壹次。

17.SQLServer常用测试题(D

冏题描述:

卷管理岗位业务培训信息,建立3他表:

S(S#,SN,SD,SA)S#,SN,SD,SA分别代表挚号、学员姓名、所属军位、孥员年龄

C(C#,CN)C#,CN分别代表^程编号、程名称

SC(S#,C#,G)S#,C#,G分别代表挚号、所选修的^程编号、阜习成绩

1.使用原则SQL嵌套^句查询选修^程名称卷‘税收基础’的学员学号和姓名

-实猊代码:

SELECTSN,SDFROMS

WHERE[S#]IN(SELECT[S#]FROMC,SCWHEREC.[C#]=SC.[C#]ANDCN=N'税

收基础')

2.使用原则SQL嵌套^句杳询选修^程编号卷'C2"的阜员姓名和所属军位

-实现代码:

SELECTS.SN,S.SDEROMS,SC

WHERES.[S#]=SC.[S#]ANDSC.[C#]='C2'

3.使用原则SQL嵌套言吾句查询不选修^程编号卷'C5’的季员姓名和所属军位

-实垣代码:

SELECTSN,SDFROMS

WHERE[S#]NOTIN(SELECT[S#]FROMSCWHERE[C#]=,C5')

4.使用原则SQL嵌套IS句查询选修所有^程的擘员姓名和所属军位

-实垣代码:

SELECTSN,SDFROMS

WHERE[S#]IN(SELECT[S#]FROMSCRIGHTJOIN

CONSC.[C#]=C.[C#]GROUPBY[S#]

HAVINGCOUNT(*)=COUNT([S#]))

5.查询选修了^程的阜员人数

-实垣代码:

SELECT学员人数=COUNT(DISTINCT[S#])FROMSC

6.查询选修^程超谩5门的阜员阜号和所属单位

-实现代码:

SELECTSN,SDFROMS

WHERE[S#]IN(

SELECT[S#]FROMSC

GROUPBY[S#]

HAVINGCOUNT(DISTINCT[C#])>5)

18.SQLServer常用测试gg(2)

冏题描述:

己知关系模式:

S(SNO,SNAME)挚生关系。SNO四岸号,SNAME卷姓名

C(CNO,CNAME,CTEACHER)^程关系。CNO程号,CNAME程名,CTEACHER

卷任^教如

SC(SXO,CNO,SCGRADE)选^关系。SCGRADE卷成绩

1.找出没有选修谩“李明”老肺讲讲^程的所有阜生姓名

-实垣代码:

SELECTSNAMEFROMS

WHERENOTEXISTS(

SELECT*FROMSC,CWHERESC.CNO=C.CNOANDCNAME='李明'AND

SC.SNO=S.SNO)

2.列出有二门以上(含两门)不及格程的挚生姓名及其平均成绩

-实垣代码:

SELECTS.SNO,S.SNAME,AVG_SCGRADE=AVG(SC.SCGRADE)

FROMS,SC,(

SELECTSNOFROMSCWHERESCGRADE<60GROUPBYSNO

HAYINGCOUNT(DISTINCTCNO)>=2)AWHERES.SNO;A.SNOANDSC.SNO=A.SNO

GROUPBYS.SNO,S.SNAME

3.列出既孥:@“1”号^程,又^谩“2”号^程的所有季生姓名

-实垣代码:

SELECTS.SNO,S.SNAME

FROMS,(SELECTSC.SNOFROMSC,C

WHERESC.CNO;C.CNOANDC.CNAMEIN('1','2')

GROUPBYSNO

HAVINGCOUNT(DISTINCTCNO)=2

)SCWHERES.SNO=SC.SNO

4.列出T号^成绩比“2”号同擘该门^成绩高的所有擘生的阜号

-实IS代码:

SELECTS.SNO,S.SNAME

FROMS,(

SELECTSCI.SNO

FROMSCSC1,CCl,SCSC2,CC2

WHERESCI.CNO=C1.CNOANDCl.NAME='1'

AXDSC2.CNO=C2.CNOANDC2.NAME=,2'

ANDSCI.SCGRADE>SC2.SCGRADE

)SCWHERES.SNO-SC.SNO

5.列出T号^成绩比“2”号^成绩高的所有挚生的学号及其“1”号裸和

“2”号^的成绩

-实垣代码:

SELECTS.SNO,S.SNAME,SC.[1号^成绩],SC.[2号^成绩]

FROMS,(

SELECTSCI.SNO,[1号IS成绩]=SC1.SCGRADE,[2号^成绩]二SC2.SCGRADE

FROMSCSC1,CCl,SCSC2,CC2

WHERESCI.CNO;CLCNOANDCl.NAME='1’

AXDSC2.CNO=C2.CNOANDC2.NAME='2'

AXDSCI.SCGRADE>SC2.SCGRADE

)SCWHERES.SNO;SC.SNO

19.Question1:CanyouuseabatchSQLorstoreproceduretocalculating

theNumberofDaysinaMonth

找出常月的天数

select

datepart(dd,dateadd(dd,-1,dateadd(mm,1,cast(cast(year(getdate())as

varchar)+,+cast(month(gctdateO)asvarchar)+!-01'asdatetime))))

20.Question2:CanyouuseaSQLstatementtocalculatingit!

HowcanIprint"10to20"forbooksthatsellforbetween$10and

$20,“unknown“forbookswhosepriceisnull,and“other”forallother

prices?

selectbookid,bookname,price=casewhenpriceisnullthen'unknown'

whenpricebetween10and20then'10to20'elsepriceend

frombooks

21.Question3:CanyouuseaSQLstatementtofindingduplicatevalues!

HowcanIfindauthorswith

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论