DBA面试大全

一份ORACLEDBA面试题一:SQLtuning类1:列举几种表连接方式答:mergejoin,hashjoin,nestedloop2:不借助第三方工具,怎样查看sql的执行方案答:sqlplussetautotrace...3:如何使用CBO,CBO与RULE的区别答:在初始化参数里面设置optimizer_mode=choose/all_rows/first_row等可以使用cbo.
rbo会选择不适宜的索引,cbo需要统计信息。4:如何定位重要(消耗资源多)的SQL答:根据v$sqlarea中的逻辑读/disk_read。以及寻找CPU使用过量的session,查出当前session的当前SQL语句,或者:监控WIN平台Oracle的运行5:如何跟踪某个session的SQL答:先找出对应的'sid,serial',然后调用system_system.set_sql_trace_in_session(sid,serial,true);参考:跟踪某个会话6:SQL调整最关注的是什么答:逻辑读。IO量7:说说你对索引的认识〔索引的结构、对dml影响、对查询影响、为什么提高查询性能答:默认的索引是b-tree.对insert的影响.(分裂,要保证tree的平衡)对delete的影响.(删除行的时候要标记改节点为删除).对update的影响,如果更新表中的索引字段,那么要相应的更新索引中的键值。查询中包含索引字段的键值和行的物理地址。8:使用索引查询一定能提高查询的性能吗?为什么答:不能。如果返回的行数目较大,使用全表扫描的性能较好。9:绑定变量是什么?绑定变量有什么优缺点答:通俗的说,绑定变量就是变量的一个占位符,使用绑定变量可以减少只有变量值不同的语句的解析。10:如何稳定(固定)执行方案答:使用storedoutline.11:和排序相关的内存在8i和9i分别怎样调整,临时表空间的作用是什么答i:使用sort_area_size,hash_area_size,每个session分配相同的值,不管有无使用。9i:使用pga_aggregate来统一管理。临时表空间的作用:在sort_area_size中不能完成的局部在临时表空间完成,临时表空间在重建索引,创立临时表等都要用到。还有hashjoin不能完成的也在临时表空间中做。12:存在表T(a,b,c,d),要根据字段c排序后取第21—30条记录显示,请给出sqlselecta,b,c,dfrom(selecta,b,c,dfromTorderbyc)whererownum<=30minusselecta,b,c,dfrom(selecta,b,c,dfromTorderbyc)whererownum<=20;或者:selectfrom(selectrownumrn,a.from(selecta,b,c,dfromTorderbyc)a)wherernbetween21and30;二:数据库根本概念类1pctusedandpctfree表示什么含义有什么作用答:表示数据块什么时候移入和移出freelist。pctused:如果数据块的使用率小于pctused的值,那么该数据块重新参加到fresslist中。pctfree:如果数据块的使用率高于pctfree的值,那么该数据块从freelist中移出。2:简单描述table/segment/extent/block之间的关系答:一个table至少是一个segment,如果分区表,那么每个分区是一个segment,table可以看成是一个逻辑上的概念,segment可以看成是这个逻辑概念的物理实现;segment由一个或多个extents组成,segment不可以跨表空间但可以跨数据文件;extent由多个连续的blocks组成,不可以跨数据文件;block由1-多个os块组成,是oraclei/o的最小存储单位。3:描述tablespace和datafile之间的关系答:tablespace是逻辑上的概念,datafile是物理上的概念。一个tablespace可以由多个datafile组成,一个datafile不能跨越多个tablespace。4:本地管理表空间和字典管理表空间的特点,ASSM有什么特点答:一个使用freelist管理,一个使用位图管理。5:回滚段的作用是什么答:保存数据的前像,保证数据读取的时间点一致性。Oracle里数据的多版本特性就是通过回滚段来实现的,正因为此,Oracle数据库实现了读写不竞争的性能优势!6:日志的作用是什么答:纪录对数据库的操作,便与恢复。7:SGA主要有那些局部,主要作用是什么答:db_cache(缓存数据块),shared_pool(缓存sql,执行方案,数据字典信息等),large_pool(MTS模式、parallel、rman等要用到),javapool(java程序如SQLJ存储过程运行时要用到)8:racle系统进程主要有哪些,作用是什么答:smon〔合并空间,实例恢复〕,pmon〔清理失败的进程〕,归档进程〔负责在日志切换的时候归档日志文件〕,lgmr〔日志书写器进程,负责写日志〕,ckpt(检查点进程,触发检查点),dbwr(数据库写入器,负责把数据写入导datafile)三:备份恢复类1:备份如何分类答:逻辑备份(exp)与物理备份。或者冷备份与热备份。2:归档是什么含义答:把日志文件放到另一个地方。3:如果一个表在2004-08-0410:30:00被drop,在有完善的归档和备份的情况下,如何恢复答:拷贝备份,recoverdatabaseuntiltime2004-08-0410:30:00alterdatabaseopenresetlogs;4:rman是什么,有何特点答:rman叫恢复管理器.特点很多。可以在线备份,到少目标数据库是mount状态。1:热备份。2:可以存储脚本。3:可以增量备份。4:自动管理备份集。5:standby的特点答:利用传输重做日志来到达同步的目的。可以设定多个保护级别,9i后支持逻辑standbyDB。6:对于一个要求恢复时间比拟短的系统(数据库50G,每天归档5G),你如何设计备份策略答:每天一个全备份。四:系统管理类1:对于一个存在系统性能的系统,说出你的诊断处理思路答:做一个statspack,根据top5,systemload,topsql等来做相应的调整。2:列举几种诊断IO、CPU、性能状况的方法答:hp-unix:iostat-x15;top/vmstat/glance3:对statspack有何认识答:一个性能诊断工具而已,其本质就是在两个时间点采样两个系统数据。(动态性能视图),然后根据两个snapshot,产生一个报告。4:如果系统现在需要在一个很大的表上创立一个索引,你会考虑那些因素,如何做以尽量减小对应用的影响答:1:增大sort_area_size(8i)/pga_aggregate_target(9i)值。2:如果表有分区〔一般大表都要用到分区的〕,按分区逐个建索引,如果是本地索引的话;3:系统空闲的时候建。5:对raid10和raid5有何认识答:raid10是先镜像后条带,适合对写入速度要求较高的数据库系统,特别是onlineredolog文件,raid5适合大局部的数据库系统和数据仓库系统,读性能优于写性能。五:综合随意类1:你最擅长的是oracle哪局部?答:性能/sql调优、备份恢复。2:喜欢oracle吗?喜欢上论坛吗?或者偏好oracle的哪一局部?答:://itpub.net/,Oracle的SQL优化。3:随意说说你觉得oracle最有意思的局部或者最困难的局部答:SQL调优,最困难的是Oracle的网络管理,Oracle的ConnectManager没用过。4:为何要选择做DBA呢?答:爱好加职业历史积累。4:如果系统现在需要在一个很大的表上创立一个索引,你会考虑那些因素,如何做以尽量减小对应用的影响答:1:增大sort_area_size(8i)/pga_aggregate_target(9i)值。2:用并行的方式来建。3:系统空闲的时候建。其他:什么是聚集索引,什么是非聚集索引,什么又是主键?聚簇索引的顺序就是数据的物理存储顺序,叶节点就是数据节点。非聚簇索引的顺序与数据物理排列顺序无关,叶节点仍然是索引节点,只不过有一个指针指向对应的数据块。能够唯一表示数据表中的每个记录的字段或者字段的组合就称为主键,通过它可强制表的实体完整性。1、事务是什么?A:所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。2、oracle中truncate和delete命令有何区别?A:〔1〕delete将在回滚段中产生回滚信息,truncate不产生,因此无论表中的记录多少,truncate执行都很快。〔2〕truncate是DDL,执行隐含的commit,truncate不能回滚。任何没有提交的DML改变也将会和truncate一起提交。〔3〕truncate重置表及其索引高水位标志。全表扫描和索引快速全扫描读高水位标志下的所有数据块,因此在delete后全扫描性能没有提高,但truncate后将会变快。〔4〕truncate不触发delete触发器。〔5〕没有对象权限允许一个用户truncate另一个用户的表。这样做需要DROPANYTABLE系统权限。〔6〕当一个表被truncate,表及其索引的存储将被重置回初始大小。而delete不收缩表及其索引的大小。〔7〕当父表有一个可用的引用完整性约束时不能被truncate。必须先disable引用父表的外键约束,再truncate。3、Oracle中char和varchar2数据类型有什么区别?有数据〞test〞分别存放到char(10)和varchar2(10)类型的字段中,其存储长度及类型有何区别?A:char是定长字符类型,varchar2是变长字符类型。“test〞在char(10)中被补齐空格,存储长度是10字节,在varchar2(10)中存储长度是4字节。OracleDBA笔试及面试题汇总:根底篇-考试认证使用篇1:使用索引查询一定能提高查询的性能吗?举出实例2:数据库设计的一、二、三范式、BCNF是什么?3:StoreProcedure和Function有何区别?4:如何跟踪某个session的SQL?5:如何使用CBO,CBO与RULE的区别?6:描述tablespace和datafile之间的关系7:truncate和delete有何区别?哪一种操作性能更快?8:什么是Snapshot?与View有何区别?9:pctusedandpctfree表示什么含义有什么作用10:cursor一般用在什么地方?有何弱点?管理篇1:SQL调整最关注的是什么?2:Oracle的系统进程有哪些?作用是什么?3:本地管理表空间和字典管理表空间的特点,ASSM有什么特点?4:备份如何分类?5:如果一个表被drop,在有完善的归档和备份的情况下,如何恢复6:rman是什么,有何特点?7:standby的特点8:对于一个要求恢复时间比拟短的系统(数据库50G,每天归档5G),你如何设计备份策略9:对于一个存在系统性能的系统,说出你的诊断处理思路10:列举几种诊断IO、CPU、性能状况的方法11:对statspack有何认识12:如果系统现在需要在一个很大的表上创立一个索引,你会考虑那些因素,如何做以尽量减小对应用的影响13:对raid10和raid5有何认识14:SGA主要有那些局部,主要作用是什么15:简单描述table/segment/extent/block之间的关系16:说说你对索引的认识(索引的结构、对dml影响、对查询影响、为什么提高查询性能)46家著名企业笔试试题〔IT业〕--香港电信/ORACLE/维尔VERITAS/凹凸电子/普华永道PW/奇码数字信息C香港电信笔试题1.Basedonyourunderstandingofthefollowingjavarelatedtechnologies:servlets,JavaServerPage,JavaBeans,EnterpriseJavaBeans,howdoyouthinkthesetechnologiesareworktogetherorareappliedinthedevelopmentofaninternet-basedapplication(25marks).2.Inyouropinion,whatdoyouthinkaretheadvantagesorbenefitsofusinganobject-orientedapproachtosoftwaredevelopment?howdoyouthinkthosebenefitscanbeachievedorrealized?(15marks).3.Indesigningyourclasses,giventhechoicebetweeninheritanceandaggregationwhichdoyouchoose(15marks).4.HowwouldyouworkaroundthelackofmultipleinheritancefeatureinJava(15marks).5.WhatwouldyouconsidertobethehardestpartofOOanalysisanddesignandwhy(10marks).6.Howdoyoukeepyourselfuptodatewiththelatestinsoftwaretechonogy,especiallyinthefieldofsoftwaredevelopment(10marks).7.Whatsiyourcareeraspiration?WhydoyouthinkthisE-CommerceDevelopmentCentercanhelpyouinachievingyourcareergoals(10marks)(1hr,answerinEnglish).ORACLE的笔试题1.Wouldyoupleasedescribeyourselfin3-4lines?(limitedin500words)2.CouldyoutelluswhyweshouldchooseyouasaLorealPerson,andwhatmakesyouunique?(limitedin500words)3.Whatisyourshort-termandlong-termcareerplan?(limitedin500words)4.Whatkindofgroupactivitiesareyouinterestedinandwhattypeofroledoyouoftenplay?(limitedin500words)5.Pleaseuseonesentencetogiveadefinitionof‘Beauty’,anddescribethemostbeautifulthinginyourlife.(limitedin500words)维尔VERITAS软件笔试题1.AclassBnetworkontheinternethasasubnetmaskof255.255.240.0,whatisthemaximumnumberofhostspersubnet.a.240b.255c.4094d.655342.Whatisthedifference:betweeno(logn)ando(logn^2),wherebothlogarithemshavebase2.a.o(logn^2)isbiggerb.o(logn)isbiggerc.nodifference3.Foraclasswhatwouldhappenifwecallaclass’sconstructorfromwiththesameclass’sconstructor.a.compilationerrorb.linkingerrorc.stackoverflowd.noneoftheabove4.“new〞inc++isa:.a.libraryfunctionlikemallocincb.keywordc.operatord.noneoftheabove5.Whichofthefollowinginformationisnotcontainedinaninode.a.fileownerb.filesizec.filenamed.diskaddress6.What’sthenumberofcomparisonsintheworstcasetomergetwosortedlistscontainingnelementseach.7.TimecomplexityofnalgorithmT(n),wherenistheinputsize,isT(n)=T(n-1)+1/nifn>1otherwise1theorderofthisalgorithmis.a.log(n)b.nc.n^2d.n^n8.Thenumberof1’sinthebinaryrepresentationof34096+15256+516+3are.a.8b.9c.10d.12百威啤酒(武汉公司)1,为什么申请来百威?2,将来有什么打算?3,有没有社会活动经历?4,有没有当众演讲的经历?5,经常使用那些软件?6,喜欢哪些课程?7,你认为工作中的什么因素对你来说最重要?8,什么时候可以来上班?可以在这里工作多久?9,八点上班,要加班和出差,能不能做到?星巴克1、您是一家咖啡店的店经理,你发现店内同时出现以下状况:1〕许多张桌子桌面上有客人离去后留下的空杯未清理,桌面不干净待整理。2〕有客人正在询问店内卖哪些品种,他不知如何点咖啡菜单。3〕已有客人点完成咖啡,正在收银机旁等待结帐。4〕有厂商正准备要进货,需要店经理签收。请问,针对上述同时发生的情况,你要如何排定处理之先后顺序,为什么2、有一位甲员工脾气不好以致在前三家店因为与店内其他同事相处不佳而屡屡调动,现在甲被调到你的店里面来,请问身为店经理的你,将如何应对??3、你是店经理,本周五结帐后,发现门市总销售额较上周五减少30%,请问可能原因会是哪几种,各原因如何应对?凹凸电子软件笔试题1.SelectONEofthefollowingprojectstodiscuss:a.SignalFiltering:Youaregivenasampledrealtimewaveformconsistingofasensorreadingmixedwithhighlyperiodicimpulsesandhighfrequencynoise.Thedesiredoutputistherealtimefilteredsensorsignalwiththeimpulsesandnoiseremoved,andareadoutoftheimpulseperiod.TheFFTmaynotbeused.b.InterruptProcessing.Aheadwareregisterconsistingofeightindependentedgetriggeredlatchesisusedtorecordexternalasynchronousinterruptrequests.Whenanyoftherequestbitsarelatched,asoftwareinterruptisgenerated.Thesoftwaremayreadthelatchtoseewhichinterrupt(s)occurred.Writingaonetoanylatchbitwillclearthelatch.Howdoesthatsoftwareassurethatnointerruptrequestisevermissed?c.UserInterface:aprototypeMP3playerinterfaceconsistingofaplaylistdisplayandafewcontrolbuttonsisgiventoyou.Howwouldyoumaketheinterface“skinnable〞,withuserselectedgraphics,options,andcontrolbuttonplacement?Eachprojectdescriptionisincomplete.Whatquestionswouldyouasktocompletelyspecifytheproject?Whatdevelopmenttoolswouldyouprefertouse?Whatalgorithm/datastructures/designwouldyouuse?2.Whatprogram(s)haveyoucodedforyouownenjoyment(notpartofaschoolproject,notforpay).Whattypeofsoftwareprojectwouldyoumostenjoyworkingon?3.Haveyouparticipatedinateamprogrammingproject?Whatisthehardestpartofprogrammingasateam,asopposedtoprogrammingalone?友立资讯笔试题目1.一堆鸡蛋,3个3个数剩余2个,5个5个数剩余1个,7个7个数剩余3个,问这堆鸡蛋最少有多少个?并给出通解。2.列举五岳,及其所在省份。3.何为四书。4.按顺序默写24节气。5.默写于谦的?吟石灰?。6.英语翻译约300字。7.作文一篇:求职有感。普华永道PWC笔试题目〔作文〕1.最近10年来中国媒体的变化。2.你认为开展汽车产业和公共交通哪个更重要?3.如何理解风险投资?4.如何理解广告的消极作用和积极作用?Avant!微电子EE笔试题1.名词解释:VLSI,CMOS,EDA,VHDL,Verilog,HDL,ROM,RAM,DRC,LVS。2.简述CMOS工艺流程。3.画出CMOS与非门的电路,并画出波形图简述其功能。4.画出N沟道增强型MOSFET的剖面图。5.简述ESD和latch-up的含义。6.简述三极管与MOS管的区别。7.简述MOORE模型和MEALY模型。8.简述堆栈与队列的区别。奇码数字信息笔试题1.画出NMOS的特性曲线〔指明饱和区,截至区,线性区,击穿区和C-V曲线〕2.2.2um工艺下,Kn=3Kp,设计一个反相器,说出器件尺寸。3.说出制作N-well的工艺流程。4.雪崩击穿和齐纳击穿的机理和区别。5.用CMOS画一个D触发器〔clk,d,q,q-〕OracleDBA笔试题〔答题时间60分钟〕Unix/Linux题目1、如何查看主机cpu,内存、IP和磁盘空间?2、你常用的进程管理、主机性能观察命令有哪些?3、建立组dba和该组下用户oracle,默认shell为bash。4、如何查看用户oracle的登陆历史和命令操作历史?5、写crontab,让脚本/opt/test.sh在每周日晚上8:00执行。6、如何查找当前目录及其所有子目录下含有“ORA-〞或“warning〞字符内容的所有带log后缀的文件。7、写一个shell,完成自动登陆数据库〔用户名密码是test/testpwd,网络连接串是db_wending〕并获取数据库当前SCN的功能。OracleDatabase题目1、如何快速了解一个已经运行很久的数据库系统?2、如何获得SQL语句的执行方案和统计信息?3、列出你常用的数据字典视图和动态性能视图。4、陈述使用过的数据库备份和恢复技术,及其优缺点。5、描述table/segment/tablespace/datafile/extent/block之间的关系。6、前台系统反映非常慢,需要你去分析诊断。请详细陈述诊断流程,包括写下可能用到的操作系统命令、数据库视图等。7、公司准备把Oracle9i升级为Oracle10.2.0.4,但批准的停库时间仅为10分钟,你打算如何应对?8、详细陈述RAC、Dataguard、StreamsReplication、AdvancedReplication等OracleHA技术的原理和优缺点。9、写存储过程,把当前用户下数据库对象个数信息按对象类型分组输出来。10、请写下你常关注的oracle初始化参数。--End--国外公司的OracleDBA面试题2007-11-2010:20OracleDBAInterviewQuestionsByBG1.Howmanymemorylayersareinthesharedpool?2.HowdoyoufindoutfromtheRMANcatalogifaparticulararchiveloghasbeenbacked-up?3.Howcanyoutellhowmuchspaceisleftonagivenfilesystemandhowmuchspaceeachofthefilesystem'ssubdirectoriestake-up?4.DefinetheSGAand:?HowyouwouldconfigureSGAforamid-sizedOLTPenvironment??WhatisinvolvedintuningtheSGA?5.Whatisthecachehitratio,whatimpactdoesithaveonperformanceofanOracledatabaseandwhatisinvolvedintuningit?6.Otherthanmakinguseofthestatspackutility,whatwouldyoucheckwhenyouaremonitoringorrunningahealthcheckonanOracle8ior9idatabase?7.HowdoyoutellwhatyourmachinenameisandwhatisitsIPaddress?8.Howwouldyougoaboutverifyingthenetworknamethatthelocal_listeneriscurrentlyusing?9.Youhave4instancesrunningonthesameUNIXbox.Howcanyoudeterminewhichsharedmemoryandsemaphoresareassociatedwithwhichinstance?10.Whatview〔s〕doyouusetoassociateauser'sSQLPLUSsessionwithhiso/sprocess?11.Whatistherecommendedintervalatwhichtorunstatspacksnapshots,andwhy?12.Whatspfile/init.orafileparameterexiststoforcetheCBOtomaketheexecutionpathofagivenstatementuseanindex,eveniftheindexscanmayappeartobecalculatedasmorecostly?13.AssumingtodayisMonday,howwouldyouusetheDBMS_JOBpackagetoscheduletheexecutionofagivenprocedureownedbySCOTTtostartWednesdayat9AMandtorunsubsequentlyeveryotherdayat2AM.14.HowwouldyouedityourCRONTABtoscheduletherunningof/test/test.shtoruneveryotherdayat2PM?15.Whatdothe9idbms_standard.sql_txt〔〕anddbms_standard.sql_text〔〕proceduresdo?16.InwhichdictionarytableorviewwouldyoulooktodetermineatwhichtimeasnapshotorMVIEWlastsuccessfullyrefreshed?17.HowwouldyoubestdeterminewhyyourMVIEWcouldn'tFASTREFRESH?18.HowdoespropagationdifferbetweenAdvancedReplicationandSnapshotReplication〔readonly〕?19.Whichdictionaryview〔s〕wouldyoufirstlookattounderstandorgetahigh-levelideaofagivenAdvancedReplicationenvironment?20.HowwouldyoubegintotroubleshootanORA-3113error?21.Whichdictionarytablesand/orviewswouldyoulookattodiagnosealockingissue?22.AnautomaticjobrunningviaDBMS_JOBhasfailed.Knowingonlythat"it'sfailed",howdoyouapproachtroubleshootingthisissue?23.HowwouldyouextractDDLofatablewithoutusingaGUItool?24.You'regettinghigh"busybufferwaits"-howcanyoufindwhat'scausingit?25.Whatquerytellsyouhowmuchspaceatablespacenamed"test"istakingup,andhowmuchspaceisremaining?26.Databaseishung.Oldandnewuserconnectionsalikehangonimpact.Whatdoyoudo?YourSYSSQLPLUSsessionISabletoconnect.27.Databasecrashes.CorruptionisfoundscatteredamongthefilesystemneitherofyourdoingnorofOracle's.Whatdatabaserecoveryoptionsareavailable?Databaseisinarchivelogmode.28.IllustratehowtodeterminetheamountofphysicalCPUsaUnixBoxpossesses〔LINUXand/orSolaris〕。29.HowdoyouincreasetheOSlimitationforopenfiles〔LINUXand/orSolaris〕?30.ProvideanexampleofashellscriptwhichlogsintoSQLPLUSasSYS,determinesthecurrentdate,changesthedateformattoincludeminutes&seconds,issuesadroptablecommand,displaysthedateagain,andfinallyexits.31.ExplainhowyouwouldrestoreadatabaseusingRMANtoPointinTime?32.HowdoesOracleguaranteedataintegrityofdatachanges?33.WhichenvironmentvariablesareabsolutelycriticalinordertoruntheOUI?34.WhatSQLqueryfromv$sessioncanyouruntoshowhowmanysessionsareloggedinasaparticularuseraccount?35.WhydoesOraclenotpermittheuseofPCTUSEDwithindexes?36.Whatwouldyouusetoimproveperformanceonaninsertstatementthatplacesmillionsofrowsintothattable?37.Whatwouldyoudowithan"in-doubt"distributedtransaction?38.Whatarethecommandsyou'dissuetoshowtheexplainplanfor"selectfromdual"?39.Inwhatscriptis"snap$"created?Inwhatscriptisthe"scott/tiger"schemacreated?40.Ifyou'reunsureinwhichscriptasysorsystem-ownedobjectiscreated,butyouknowit'sinascriptfromaspecificdirectory,whatUNIXcommandfromthatdirectorystructurecanyouruntofindyouranswer?41.HowwouldyouconfigureyournetworkingfilestoconnecttoadatabasebythenameofDSSwhichresidesindomainicallinc?42.Youcreateaprivatedatabaselinkanduponconnection,failswith:ORA-2085:connectsto.Whatistheproblem?Howwouldyougoaboutresolvingthiserror?43.IhavemybackupRMANscriptcalled"backup_rman.sh".Iamonthetargetdatabase.Mycatalogusername/passwordisrman/rman.Mycatalogdbiscalledrman.HowwouldyourunthisshellscriptfromtheO/Ssuchthatitwouldrunasabackgroundprocess?44.ExplaintheconceptoftheDUALtable.45.Whatarethewaystablespacescanbemanagedandhowdotheydiffer?46.Fromthedatabaselevel,howcanyoutellunderwhichtimezoneadatabaseisoperating?47.What'sthebenefitof"dbms_stats"over"analyze"?48.Typically,whereistheconventionaldirectorystructurechosenforOraclebinariestoreside?49.YouhavefoundcorruptioninatablespacethatcontainsstatictablesthatarepartofadatabasethatisinNOARCHIVElogmode.Howwouldyourestorethetablespacewithoutlosingnewdataintheothertablespaces?50.Howdoyourecoveradatafilethathasnotbeenphysicallybeenbackedupsinceitscreationandhasbeendeleted.Providesyntaxexample.如何获得OracleDBA工作?不过48个小时,就有120封Oracle数据库管理员的求职信堆在了DebbieReames的桌子上,Reames是位于洛杉矶的商业编程公司的高级技术招聘人员。然后Reames做了许多招聘人员都做的事情。她通过三个步骤的过程剔除了其中的一般简历。需要H-1Bvisa信用卡?走吧。需要重新安置?不适合这个工作。只在小公司工作过?这个职位对你来说太大了。根据多项调查,除了IT历史上最低迷的时期之外,Oracle总是为那些经过认证的专业人士和数据库管理员提过了大量的工作时机。当然,具有资格的候选人的列表就更长了。当在市场上寻找一份工作的时候,即使是最资深的IT专家都需要记住一些他们在很久以前就学到的规那么,并且同时采用一些新的策略。数据库管理员市场可以按照以多种方式分为两个局部——初级和高级。DonBurleson,位于美国北卡罗来纳州Kittrell的BEIOracle参谋公司的所有者,说,那些工作经验少于3年的初级数据库管理员,经常会面临失业和低等的工作市场。Burleson曾写过与Oracle技术和职业生涯有关的17本书,其中包括?Oracle工作面试指导(ConductingtheOracleJobInterview)?,这本书是为那些需要评估Oracle周围候选人的IT经理们准备的指南。“过去,许多公司都不会雇佣初学者,〞Burleson说。然而,Burleson说,那些初级数据库管理员仍然是有希望的。那些不愿意花12万美元年薪雇佣经验丰富的专家的公司有时候会雇佣这些新手并对他们进行培训。Burleson建议那些新入门的数据库管理员可以到体检行业和大学这两个地方去找到他们的第一份工作。政府平安检查对资深人员很关键然后就是资深人士。那些拥有超过10年经验的,拥有高级学位,并且具有专业技能的数据库管理员仍然有很大的需求量。Oracle财务知识,SAP,PeopleSoft,9iRAC,9iAS和Unix都是重要的能力,Burleson说。还有,政府平安调查是在第一轮的简历挑选中排除许多Oracle数据库管理员的一项。另外,开发技能,例如Java,Windows,J2EE和门户,都是候选人具有竞争力的优势。更重要的是,Reames说,候选人的技能需要与公司的需要相匹配。“他们真的需要拥有全面技能,〞Reames说。“如果工作需要的是能够进行数据建模的人,〞她说,“并且我没有在简历中看见任何的数据建模经验,那么我就会对这个人大打折扣。〞除了专业技能之外,Burleson说,许多的公司都愿意要那些有教育背景的人,倾向于雇佣那些拥有研究生学位或者MBA的候选人。公司认为那些懂得财务或者会计,具有数据库管理员支持的业务过程知识的数据库管理员有价值。打跟进,第一轮面试对于两个群体,要通过关键的第一轮面试都有一些根本的规那么需要遵守。今早地投递简历是有帮助的。如果有120份简历需要阅读的话,Reames也许不会把所有简历都读完就找到了到达面试要求,具有足够特点的候选人。候选人应该给招聘人员打确认他们的简历被收到了,她说。“不要害怕打跟进,〞Reames说。“这会带给你一个优势,否那么我们可能就不会看你的简历。〞通过第一轮筛选的申请人通常是在中面试。记住面试你的人也许没有任何技术背景,这一点很重要,Burleson说。在这一点上,是对候选人从技术之外的其他品质上进行判断。专家说,此时沟通技巧非常重要。因为沟通技巧在工作中是如此的重要,Burleson推荐候选人提供应潜在的雇主写作样例,尤其是那些得到发表的。有几个在线网站,包括这一个,都接受技术贴士投稿,他指出。实际的技术对话少数能够通过面试的候选人能够到工作地点去进行面试,Burleson称之为候选人的技术化。他建议面试人员提出一些专业的问题,例如“Oracle中的SYS用户默认密码是多少?〞这些问题没有捏造的答案,面试人员可以轻松地判断候选人的技术能力。“只有那些实践过的数据库管理员知道答案是‘change_on_install,’〞Burleson说。“经验丰富的数据库管理员可以立即发现谎话。〞然后就是最后一个阶段,与公司的IT人员在线会见。这些会见通常会持续半天,这是真正在测试你是否会被雇佣。有时候是一些开放的问题,例如“如果一个终端用户抱怨性能差劲,你要做的第一件事情是什么?〞这些问题的答案非常具有启发性,Burleson说,因为他们也没有正确答案,他们只是看看候选人是如何独立思考的,或者是数据库管理员有多少创新思维。也许更重要的是,这个最后的交流就是判断一些无形的,例如人际关系技巧的过程。拥有一个能够成为团队中一员的数据库管理员对于大多数公司(即使不是所有的公司)来说都是优先考虑的。在很多情况下,这些无形的东西形成了差异。“我见过公司拒绝了技术能力最强的候选人。这样的事情总是发生,〞Burleson指出。“数据库管理员需要与其他人打好关系。〞最后,Burleson说,忘掉星期五可以穿便装的习惯。“面试中穿得太随便是对自己的极度不负责,〞他说。“外表确实重要。〞整理了几个Oracle面试中的技术问题,各位可以借鉴一下:解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。〔因为不必将archivelog写入硬盘〕2.你必须利用备份恢复数据库,但是你没有控制文件,该如何解决问题呢?解答:重建控制文件,用带backupcontrolfile子句的recover命令恢复数据库。3.如何转换init.ora到spfile?解答:使用createspfilefrompfile命令.4.解释datablock,extent和segment的区别〔这里建议用英文术语〕解答:datablock是数据库中最小的逻辑存储单元。当数据库的对象需要更多的物理存储空间时,连续的datablock就组成了extent.一个数据库对象拥有的所有extents被称为该对象的segment.2.DBMS_METADATA.GET_DDL包解答:alertlog.评价:这里的答复并不是十分全面,这些问题可以通过多个角度来进行解释,也许你不必在面试过程中给出完全详尽的答案,只需要通过你的解答使面试考官了解你对ORACLE概念的熟悉程度。OracleDBA问题记录分析:其中包括语法分析、语义分析、视图转换、表达式转换、选择优化器、选择连接方式、选择连接顺序、选择数据搜索路径等等,然后在SGA中的共享SQL区中找是否执行过该语句,如找到那么直接执行已编译的SQL语句,如没有找到,那么先编译后放入SGA,并执行编译后的SQL语句。执行:在执行编译过的SQL语句时,先在SGA中的数据库缓冲区内查找是否存在所需要的数据,如有直接读取,如果没有,那么从物理文件中读取至数据库缓冲区并读取。返回结果:对SELECT语句需要返回结果的语句,先看是否需要排序,需要,那么排序后返回给用户,然后根据内存的大小不同,可以一次取出一行数据,也可以一次取一组数据。使用热备份会导致备份的数据具有非一致性,在Oracle提供的RMAN工具中可以依靠联机重做日志解决恢复备份时导致的非一致性。数据库文件日志文件控制文件参数文件口令文件网络参数文件Oracleblock是Oracle数据库中读写操作的最小单元。一个Oracleblock由三个局部组成,分别是数据块头、自由空间、实际数据三部份组成。数据块头:主要包含有数据块地址的一些根本信息和段的类型,以及表和包含有数据的实际行的地址。自由空间:是指可以为以后的更新和插入操作分配的空间,大小由PCTFREE和PCTUSED两个参数影响。实际数据:是指在行内存储的实际数据。当创立或者更改任何表和索引的时候,Oracle在空间控制方面使用两个存储参数:PCTFREE:为将来更新已经存在的数据预留空间的百分比。PCTUSED:用于为插入一新行数据的最小空间的百分比。这个值决定了块的可用状态。可用的块时可以执行插入的块,不可用状态的块只能执行删除和修改,可用状态的块被放在freelist中。1.专用效劳器连接(dedicatedserver)在专用效劳器模式下,优点就是每个用户都有一个连接,所以大家不至于有的应用占着连接造成别的客户的请求给挂起了。而最大的缺点在于内存管理上。2.共享效劳器连接(sharedserver)而共享连接方式优点在于连接数量固定,所以内存数量不会占用很多。共享效劳器的最大的缺点还是在于数据仓库模式下运行的时候,如果有大量的请求需要长时间占用效劳器,那么就会造成很多别的请求的挂起,导致整个效劳器性能的降低。oracle系统体系结构由实例、逻辑结构和物理结构组成。1.实例:SGA、系统监视SMON、进程监视PMON、数据库写入器DBWn、日志写入器LGWR、检查点CKPT等进程组成。2.逻辑结构:主要由:表空间、段、区和数据块等概念组成。逻辑结构是面向用户的,用户使用Oracle开发应用程序使用的就是逻辑结构。数据库存储层次结构及其构成关系,结构对象也从数据块到表空间形成了不同层次的粒度关系3.物理结构:主要是数据库文件,包括控制文件、重做日志文件、数据文件等等。RAC允许不同计算机上的多个实例翻开共享磁盘系统上的一个或多个公用数据库,它极大地提高了数据库的性能、容错和可伸缩性。多对多的架构也可用较低的价格扩展数据库规模。poweron--BIOS自检--LILO/GRUB调用---KERNEL调用--INIT调用---MIGGETTY--LOGIN在UNIX/Linux中一般将运行级别分为7级〔一说九级,但实际应用为六级,保存一级〕:0系统停机1单用户模式2多用户模式3网络多用户模式4保存5X11模式〔即进入图形界面模式〕6重起系统将其设置在/etc/inittab配置文件中:id:3:initdefault:1.STATSPACK:通过Statspack我们可以很容易确实定Oracle数据库的瓶颈所在,记录数据库性能状态。2.SQLTuning:SQLTuningAdvisor用一个调整工具集作为输入,检查其中的语句并为它们提出优化建议。11.DateGuardOracle9iDataGuard通过使用称为standbydatabase的数据库来防止出现数据的灾难。它通过将primarydatabase数据库的重做日志传到并应用到standbydatabase数据库来使standbydatabase数据库与primarydatabase数据库同步。OracleStandbyDatabase是最经常使用的最有效的灾难解决方案。在过去版本的根底上,Oracle9i又进行了许多改良,使其功能远远超过了根本的灾难恢复要求。通过将复杂的工作自动化,并对监控、警告、以及控制机制的大规模改良,StandbyDatabase和一些新的模块可以帮助DBA从错误操作、瘫痪、以及其它的灾难中恢复〔这些灾难都可能毁掉数据库〕。另外,通过使用Oracle9iStandbyDatabase,由于硬件和软件升级造成的宕机时间也可以极度缩短。Oracle9i将改良过的8版本的StandbyDatabase功能,与几个新增加的防止用户错误和瘫痪的模块合起来称为Oracle9iDataGuard。oracle存储过程的根本语法oracle存储过程的根本语法CREATEORREPLACEPROCEDURE存储过程名字(参数1INNUMBER,参数2INNUMBER)IS变量1INTEGER:=0;变量2DATE;BEGINEND存储过程名字2.SELECTINTOSTATEMENT将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条记录,否那么抛出异常(如果没有记录抛出NO_DATA_FOUND)例子:BEGINSELECTcol1,col2into变量1,变量2FROMtypestructwherexxx;EXCEPTIONWHENNO_DATA_FOUNDTHENxxxx;END;...3.IF判断IFV_TEST=1THENBEGINdosomethingEND;ENDIF;4.while循环WHILEV_TEST=1LOOPBEGINXXXXEND;ENDLOOP;V_TEST:=123;6.用forin使用cursor...ISCURSORcurISSELECTFROMxxx;BEGINFORcur_resultincurLOOPBEGINEND;ENDLOOP;END;CURSORC_USER(C_IDNUMBER)ISSELECTNAMEFROMUSERWHERETYPEID=C_ID;OPENC_USER(变量值);LOOPFETCHC_USERINTOV_NAME;EXITFETCHC_USER%NOTFOUND;dosomethingENDLOOP;CLOSEC_USER;连接数据库后建立一个TestWINDOW在窗口输入调用SP的代码,F9开始debug,CTRL+N单步调试关于oracle存储过程的假设干问题备忘1.在oracle中,数据表别名不能加as,如:selecta.appnamefromappinfoa;--正确selecta.appnamefromappinfoasa;--错误也许,是怕和oracle中的存储过程中的关键字as冲突的问题吧2.在存储过程中,select某一字段时,后面必须紧跟into,如果select整个记录,利用游标的话就另当别论了。selectaf.keynodeintoknfromAPPFOUNDATIONafwhereaf.appid=aidandaf.foundationid=fid;--有into,正确编译selectaf.keynodefromAPPFOUNDATIONafwhereaf.appid=aidandaf.foundationid=fid;--没有into,编译报错,提示:CompilationError:PLS-00428:anINTOclauseisexpectedinthisSELECTstatement3.在利用select...into...语法时,必须先确保数据库中有该条记录,否那么会报出"nodatafound"异常。可以在该语法之前,先利用selectcount()from查看数据库中是否存在该记录,如果存在,再利用select...into...4.在存储过程中,别名不能和字段名称相同,否那么虽然编译可以通过,但在运行阶段会报错selectkeynodeintoknfromAPPFOUNDATIONwhereappid=aidandfoundationid=fid;--正确运行selectaf.keynodeintoknfromAPPFOUNDATIONafwhereaf.appid=appidandaf.foundationid=foundationid;--运行阶段报错,提示ORA-01422:exactfetchreturnsmorethanrequestednumberofrows5.在存储过程中,关于出现null的问题假设有一个表A,定义如下:createtableA(idvarchar2(50)primarykeynotnull,vcountnumber(8)notnull,bidvarchar2(50)notnull--外键);如果在存储过程中,使用如下语句:selectsum(vcount)intofcountfromAwherebid=''xxxxxx'';如果A表中不存在bid="xxxxxx"的记录,那么fcount=null(即使fcount定义时设置了默认值,如:fcountnumber(8):=0依然无效,fcount还是会变成null),这样以后使用fcount时就可能有问题,所以在这里最好先判断一下:iffcountisnullthenfcount:=0;endif;这样就一切ok了。this.pnumberManager.getHibernateTemplate().execute(newHibernateCallback()...{publicObjectdoInHibernate(Sessionsession)throwsHibernateException,SQLException...{CallableStatementcs=session.connection().prepareCall("{callmodifyapppnumber_remain(?)}");cs.setString(1,foundationid);cs.execute();returnnull;}});ORACLE里锁有以下几种模式:0:none1:null空2:Row-S行共享(RS):共享表锁3:Row-X行专用(RX):用于行的修改4:Share共享锁(S):阻止其他DML操作5:S/Row-X共享行专用(SRX):阻止其他事务操作6:exclusive专用(X):独立访问使用数字越大锁级别越高,影响的操作越多。一般的查询语句如select...from...;是小于2的锁,有时会在v$locked_object出现。select...from...forupdate;是2的锁。当对话使用forupdate子串翻开一个游标时,所有返回集中的数据行都将处于行级(Row-X)独占式锁定,其他对象只能查询这些数据行,不能进行update、delete或select...forupdate操作。insert/update/delete...;是3的锁。没有commit之前插入同样的一条记录会没有反响,因为后一个3的锁会一直等待上一个3的锁,我们必须释放掉上一个才能继续工作。创立索引的时候也会产生3,4级别的锁。locked_mode为2,3,4不影响DML(insert,delete,update,select)操作,但DDL(alter,drop等)操作会提示ora-00054错误。有主外键约束时update/delete...;可能会产生4,5的锁。DDL语句时是6的锁。以DBA角色,查看当前数据库里锁的情况可以用如下SQL语句:selectobject_id,session_id,locked_modefromv$locked_object;fromv$locked_objectt1,v$sessiont2wheret1.session_id=t2.sidorderbyt2.logon_time;如果有长期出现的一列,可能是没有释放的锁。我们可以用下面SQL语句杀掉长期没有释放非正常的锁:altersystemkillsession'sid,serial#';如果出现了锁的问题,某个DML操作可能等待很久没有反响。当你采用的是直接连接数据库的方式,也不要用OS系统命令$killprocess_num或者$kill-9process_num来终止用户连接,因为一个用户进程可能产生一个以上的锁,杀OS进程并不能彻底去除锁的问题。记得在数据库级别用altersystemkillsession'sid,serial#';杀掉不正常的锁。OracleDBA有关回滚段管理试题精选Q.1:Whatsystemprivilegeisrequiredtocreatearollbacksegment?1.Createdatabase2.Createrollbacksegment3.Alterdatabase4.CreatesegmentKEY:2Q.2:Oraclerecommendsthisnumberofminimumextentsinarollbacksegment1.02.13.24.3KEY:3Q.3:Oraclerecommendsthatthefollowingsegmentsizewhencreatingarollbacksegment1.INITIAL>NEXT2.INITIAL=NEXT3.INITIALconnectinternal/oracle>shutdown--正常关闭数据库svrmgr>shutdownimmediate--立即关闭数据库svrmgr>shutdownabort--一种最直接的关闭数据库的方式,执行之后,重新启动需要花6-8小时启动:svrmgr>startup--正常启动--等价于:startupnomount;alterdatabasemount;alterdatabaseopen;svrmgr>startupmount;--安装启动:用于改变数据库的归档或执行恢复状态svrmgr>startupnomount;--用于重建控制文件或重建数据库svrmgr>startuprestrict;--约束启动,能启动数据库,但只允许具有一定特权的用户访问如果希望改变这种状态,连接成功后altersystemdisablerestrictedsession;svrmgr>startupforce;当不能关闭数据库时,可采用强制启动数据库来完成数据库的关闭操作。svrmgr>startuppfile=d:\orant\database\initorcl.ora--带初始化参数文件的启动3、缺省用户和密码<1>.Oracle安装完成后的初始口令?internal/oraclesys/change_on_installsystem/managerscott/tigersysman/oem_temp<2>.ORACLE9IASWEBCACHE的初始默认用户和密码?administrator/administrator4、让定义自己的回滚段生效在initorcl.ora中参加rollback_segments=(rb0,rb1,...)其中rb0,rb1为自己定义的回滚段,可使这些回滚段在启动时生效5、查看修改数据库的字符集<1>数据库效劳器字符集在表props$中updateprops$setvalue$='ZHS16CGB231280'wherename='NLS_CHARACTERSET'然后重新启动数据库,而不需要重新安装8i以上版本可以通过alterdatabase来修改字符集,但也只限于子集到超集,不建议修改props$表,将可能导致严重错误。Startupnomount;Alterdatabasemountexclusive;Altersystemenablerestrictedsession;Altersystemsetjob_queue_process=0;Alterdatabaseopen;Alterdatabasecharactersetzhs16gbk;sql>showparameterNLS查看数据库字符集:SELECTFROMNLS_DATABASE_PARAMETERS;SELECTFROMV$NLS_PARAMETERS;<2>客户端字符集环境selectfromnls_instance_parameters,其来源于v$parameter,表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表会话字符集环境selectfromnls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是altersession完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。客户端的字符集要求与效劳器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,altersession>环境变量>注册表>参数文件字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,那么nls_lang可以是American_America.zhs16gbk。<3>有时候用crontab发起的时候,由于执行的shell脚本的不同,导致很多的环境变量不同。常常看到插入到数据库中的汉字变成乱码。比方shell脚本cai.sh如下内容。#!/bin/kshexportORACLE_BASE=/u01/oracle/app/oracleexportORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/dataexportLD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:$LD_LIBRARY_PATHexportSHLIB_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32:/app/prepay/lib/u01/oracle/app/oracle/product/9.2.0/bin/sqlplusaicbs/aicbs@busi_cs/dev/null2>&1&那么可以看到数据库中数据变成了:2LQSJY当前数据库的字符集是SELECTFROMNLS_DATABASE_PARAMETERS为了正常,必须保持客户端和数据库一致的字符集改脚本如下即可#!/bin/kshexportORACLE_BASE=/u01/oracle/app/oracleexportORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/dataexportLD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:$LD_LIBRARY_PATHexportSHLIB_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/rdbms/lib32:/app/prepay/lib####下面就是增加的/u01/oracle/app/oracle/product/9.2.0/bin/sqlplusaicbs/aicbs@busi_csshowsga7、查询锁的原因如果进程被死锁,可以按下面方式查询<1>从v$session或者v$locked_object找到此session<2>如果有lockwait,查询v$lock,selectfromv$lockwherekaddr='C00000024AB87210'如果没有,根据sidselectfromv$lockwheresid=438<3>查看v$locklmode>0,表示已经得到此锁request>0表示正在请求此锁根据id1和id2的值可以判断请求哪个锁的释放。selectfromv$lockwhereid1=134132andid2=314318.查询锁的状况的对象V$LOCK,V$LOCKED_OBJECT,V$SESSION,V$SQLAREA,V$PROCESS;查询锁的表的方法:SELECTS.SIDSESSION_ID,S.USERNAME,DECODE(LMODE,0,'None',1,'Null',2,'Row-S(SS)',3,'Row-X(SX)',4,'Share',5,'S/Row-X(SSX)',6,'Exclusive',TO_CHAR(LMODE))MODE_HELD,DECODE(REQUEST,0,'None',1,'Null',2,'Row-S(SS)',3,'Row-X(SX)',4,'Share',5,'S/Row-X(SSX)',6,'Exclusive',TO_CHAR(REQUEST))MODE_REQUESTED,O.OWNER'.'O.OBJECT_NAME'('O.OBJECT_TYPE')',S.TYPELOCK_TYPE,L.ID1LOCK_ID1,L.ID2LOCK_ID2FROMV$LOCKL,SYS.DBA_OBJECTSO,V$SESSIONSWHEREL.SID=S.SIDANDL.ID1=O.OBJECT_ID;9.怎样查得数据库的SID?selectnamefromv$database;10、管理回滚段:存放事务的恢复信息建立回滚段createpublicrollbacksegmentSEG_NAMEtabelspaceTABLESPACE_NAME;alterrollbacksegmentSEG_NAMEonline;删除回滚段首先改变为offline状态直接使用回滚段sql>settransactionuserollbacksegmentSEG_NAME;11.计算一个表占用的空间的大小selectowner,table_name,NUM_ROWS,BLOCKSAAA/1024/1024"SizeM",EMPTY_BLOCKS,LAST_ANALYZEDfromdba_tableswheretable_name='XXX';Here:AAAisthevalueofdb_block_size;XXXisthetablenameyouwanttocheck12.表在表空间中的存储情况selectsegment_name,sum(bytes),count()ext_quanfromdba_extentswheretablespace_name='&tablespace_name'andsegment_type='TABLE'groupbytablespace_name,segment_name;13.索引在表空间中的存储情况selectsegment_name,count()fromdba_extentswheresegment_type='INDEX'andowner='&owner'groupbysegment_name;表SQL>selectsum(bytes)/(10241024)as"size(M)"fromuser_segmentswheresegment_name=upper('&table_name');索引SQL>selectsum(bytes)/(10241024)as"size(M)"fromuser_segmentswheresegment_name=upper('&index_name');15、确定可用空间selecttablespace_name,sum(blocks),sum(bytes)fromsys.dba_free_spacegroupbytablespace_name;16、程序中报错:maxinumcursorexceed!<1>查看当前的opencursor参数sql>showparameteropen_cursors<2>如果确实很小,应该调整数据库初始化文件加如一项open_cursors=200<3>如果很大,那么selectsid,sql_text,count()fromv$open_cursorgroupbysid,sql_texthavingcount()>200其中200是随便写一个比拟大的值。查询得到翻开太多的cursor.17、查看数据库的版本信息SQL>selectfromv$version;包含版本信息,核心版本信息,位数信息(32位或64位)等至于位数信息,在linux/unix平台上,可以通过file查看,如file$ORACLE_HOME/bin/oracle18.查看最大会话数SELECTFROMV$PARAMETERWHERENAMELIKE'proc%';SQL>SQL>showparameterprocessesNAMETYPEVALUE-------------------------------------------------------------------------aq_tm_processesinteger1db_writer_processesinteger1job_queue_processesinteger4log_archive_max_processesinteger1processesinteger200这里为200个用户。selectfromv$license;其中sessions_highwater纪录曾经到达的最大会话数19.以archivelog的方式运行oracle。log_archive_start=trueRESTARTDATABASE20.unix下调整数据库的时间su-rootdate-u0801000022.如何查询SERVER是不是OPS?SELECTFROMV$OPTION;如果PARALLELSERVER=TRUE那么有OPS能23.查询每个用户的权限SELECTFROMDBA_SYS_PRIVS;ALTERTABLETABLE_NAMEMOVETABLESPACE_NAME;ALTERINDEXINDEX_NAMEREBUILDTABLESPACETABLESPACE_NAME;25.在LINUX,UNIX下启动DBASTUDIO?OEMAPPDBASTUDIO26.LINUX下查询磁盘竞争状况命令?Sar-d27.LINUX下查询磁盘CPU竞争状况命令?sar-r28.查询表空间信息?SELECTFROMDBA_DATA_FILES;29.看各个表空间占用磁盘情况:SQL>coltablespaceformata20SQL>selectb.file_id文件ID号,b.tablespace_name表空间名,b.bytes字节数,(b.bytes-sum(nvl(a.bytes,0)))已使用,sum(nvl(a.bytes,0))剩余空间,sum(nvl(a.bytes,0))/(b.bytes)100剩余百分比fromdba_free_spacea,dba_data_filesb30.如把ORACLE设置为MTS或专用模式?#dispatchers="(PROTOCOL=TCP)(SERVICE=SIDXDB)"加上就是MTS,注释就是专用模式,SID是指你的实例名。31.如何才能得知系统当前的SCN号?selectmax(ktuxescnwpower(2,32)+ktuxescnb)fromx$ktuxe;32.修改oracel数据库的默认日期altersessionsetnls_date_format='yyyymmddhh24miss';ORnls_date_format='yyyymmddhh24miss'33.将小表放入keep池中altertablexxxstorage(buffer_poolkeep);34.如何检查是否安装了某个patch?checkthatoraInventory35.如何修改oracle数据库的用户连接数?修改initSID.ora,将process加大,重启数据库.36.如何创立SPFILE?SQL>connect/assysdbaSQL>selectfromv$version;SQL>createpfilefromspfile;SQL>CREATESPFILEFROMPFILE='E:\ora9i\admin\eygle\pfile\init.ora';文件已创立。FROMPFILE='E:\ora9i\SQL>CREATESPFILE='E:\ora9i\database\SPFILEEYGLE.ORA'admin\eygle\pfile\init.ora';文件已创立。37.内核参数的应用shmmax含义:这个设置并不决定究竟Oracle数据库或者操作系统使用多少物理内存,只决定了最多可以使用的内存数目。这个设置也不影响操作系统的内核资源。设置方法:0.5物理内存例子:Setshmsys:shminfo_shmmax=10485760shmmin含义:共享内存的最小大小。设置方法:一般都设置成为1。例子:Setshmsys:shminfo_shmmin=1:shmmni含义:系统中共享内存段的最大个数。例子:Setshmsys:shminfo_shmmni=100shmseg含义:每个用户进程可以使用的最多的共享内存段的数目。例子:Setshmsys:shminfo_shmseg=20:semmni含义:系统中semaphoreidentifierer的最大个数。设置方法:把这个变量的值设置为这个系统上的所有Oracle的实例的init.ora中的最大的那个processes的那个值加10。例子:Setsemsys:seminfo_semmni=100semmns含义:系统中emaphores的最大个数。设置方法:这个值可以通过以下方式计算得到:各个Oracle实例的initSID.ora里边的processes的值的总和〔除去最大的Processes参数〕+最大的那个Processes×2+10×Oracle实例的个数。例子:Setsemsys:seminfo_semmns=200semmsl:含义:一个set中semaphore的最大个数。设置方法:设置成为10+所有Oracle实例的InitSID.ora中最大的Processes的值。例子:Setsemsys:seminfo_semmsl=-20038.怎样查看哪些用户拥有SYSDBA、SYSOPER权限?SQL>connsys/change_on_installSQL>selectfromV_$PWFILE_USERS;39.如何查看数据文件放置的路径?colfile_nameformata50SQL>selecttablespace_name,file_id,bytes/1024/1024,file_namefromdba_data_filesorderbyfile_id;40.如何查看现有回滚段及其状态?SQL>colsegmentformata30SQL>SELECTSEGMENT_NAME,OWNER,TABLESPACE_NAME,SEGMENT_ID,FILE_ID,STATUSFROMDBA_ROLLBACK_SEGS41.Oracle常用系统文件有哪些?通过以下视图显示这些文件信息:v$database,v$datafile,v$logfilev$controlfilev$parameter;SQL>SELECTFROMV$INSTANCE;43.怎样估算SQL执行的I/O数?SQL>SETAUTOTRACEON;SQL>SELECTFROMTABLE;ORSQL>SELECTFROMv$filestat;可以查看IO数44.怎样扩大REDOLOG的大小?建立一个临时的redolog组,然后切换日志,删除以前的日志,建立新的日志。45.查询做比拟大的排序的进程?<1>SELECTb.tablespace,b.segfile#,b.segblk#,b.blocks,a.sid,a.serial#,FROMv$sessiona,v$sort_usagebORDERBYb.tablespace,b.segfile#,b.segblk#,b.blocks;<2>.查询做比拟大的排序的进程的SQL语句select/+ORDEREDsql_textfromv$sqltextawherea.hash_value=(selectsql_hash_valuefromv$sessionbwhereb.sid=&sidandb.serial#=&serial)orderbypieceasc;46.ORA-01555SNAPSHOTTOOOLD的解决方法增加MINEXTENTS的值,增加区的大小,设置一个高的OPTIMAL值。settransactionuserollbacksegmentroll_abc;deletefromtable_namewhere...commit;回滚段roll_abc被指定给这个delete事务,commit命令那么在事务结束之后取消了回滚段的指定.47.事务要求的回滚段空间不够,表现为表空间用满〔ORA-01560错误〕,回滚段扩展到达参数MAXEXTENTS的值〔ORA-01628〕的解决方法.向回滚段表空间添加文件或使已有的文件变大;增加MAXEXTENTS的值。48.监控事例的等待selectevent,sum(decode(wait_Time,0,0,1))"Prev",sum(decode(wait_Time,0,1,0))"Curr",count()"Tot"fromv$session_Waitgroupbyeventorderby4;49.回滚段的争用情况selectname,waits,gets,waits/gets"Ratio"fromv$rollstatC,v$rollnameDwhereC.usn=D.usn;50监控表空间的I/O比例selectB.tablespace_namename,B.file_name"file",A.phyrdspyr,A.phyblkrdpbr,A.phywrtspyw,A.phyblkwrtpbwfromv$filestatA,dba_data_filesBorderbyB.tablespace_name;51、监控文件系统的I/O比例selectsubstr(C.file#,1,2)"#",substr(C.name,1,30)"Name",fromv$datafileC,v$filestatDwhereC.file#=D.file#;52、监控SGA的命中率selecta.value+b.value"logical_reads",c.value"phys_reads",round(100((a.value+b.value)-c.value)/(a.value+b.value))"BUFFERHITRATIO"fromv$sysstata,v$sysstatb,v$sysstatcwherea.statistic#=38andb.statistic#=39andc.statistic#=40;53、监控SGA中字典缓冲区的命中率selectparameter,gets,Getmisses,getmisses/(gets+getmisses)100"missratio",(1-(sum(getmisses)/(sum(gets)+sum(getmisses))))100"Hitratio"fromv$rowcachewheregets+getmisses<>0groupbyparameter,gets,getmisses;54、监控SGA中共享缓存区的命中率,应该小于1%selectsum(pins)"TotalPins",sum(reloads)"TotalReloads",sum(reloads)/sum(pins)100libcachefromv$librarycache;selectsum(pinhits-reloads)/sum(pins)"hitradio",sum(reloads)/sum(pins)"reloadpercent"fromv$librarycache;55、显示所有数据库对象的类别和大小selectcount(name)num_instances,type,sum(source_size)source_size,sum(parsed_size)parsed_size,sum(code_size)code_size,sum(error_size)error_size,sum(source_size)+sum(parsed_size)+sum(code_size)+sum(error_size)size_requiredfromdba_object_sizegroupbytypeorderby2;56、监控SGA中重做日志缓存区的命中率,应该小于1%SELECTname,gets,misses,immediate_gets,immediate_misses,Decode(gets,0,0,misses/gets100)ratio1,Decode(immediate_gets+immediate_misses,0,0,immediate_misses/(immediate_gets+immediate_misses)100)ratio2FROMv$latchWHEREnameIN('redoallocation','redocopy');57、监控内存和硬盘的排序比率,最好使它小于.10,增加sort_area_sizeSELECTname,valueFROMv$sysstatWHEREnameIN('sorts(memory)','sorts(disk)');58、监控当前数据库谁在运行什么SQL语句?SELECTosuser,username,sql_textfromv$sessiona,v$sqltextbwherea.sql_address=b.addressorderbyaddress,piece;59、监控字典缓冲区?SELECT(SUM(PINS-RELOADS))/SUM(PINS)"LIBCACHE"FROMV$LIBRARYCACHE;SELECT(SUM(GETS-GETMISSES-USAGE-FIXED))/SUM(GETS)"ROWCACHE"FROMV$ROWCACHE;SELECTSUM(PINS)"EXECUTIONS",SUM(RELOADS)"CACHEMISSESWHILEEXECUTING"FROMV$LIBRARYCACHE;后者除以前者,此比率小于1%,接近0%为好。SELECTSUM(GETS)"DICTIONARYGETS",SUM(GETMISSES)"DICTIONARYCACHEGETMISSES"FROMV$ROWCACHE60、监控MTSselectbusy/(busy+idle)"sharedserversbusy"fromv$dispatcher;此值大于0.5时,参数需加大selectsum(wait)/sum(totalq)"dispatcherwaits"fromv$queuewheretype='dispatcher';selectcount()fromv$dispatcher;selectservers_highwaterfromv$mts;servers_highwater接近mts_max_servers时,参数需加大61、查看碎片程度高的表?SELECTsegment_nametable_name,COUNT()extentsFROMdba_segmentsWHEREownerNOTIN('SYS','SYSTEM')GROUPBYsegment_nameHAVINGCOUNT()=(SELECTMAX(COUNT())FROMdba_segmentsGROUPBYsegment_name);62、如何知道使用CPU多的用户session?11是cpuusedbythissessionselecta.sid,spid,status,substr(a.program,1,40)prog,a.terminal,osuser,value/60/100valuefromv$sessiona,v$processb,v$sesstatcwherec.statistic#=11andc.sid=a.sidanda.paddr=b.addrorderbyvaluedesc;使用的工具有sar,这是一个比拟通用的工具。#sar-u210即每隔2秒检察一次,共执行20次,当然这些都由你决定了。例如返回:HP-UXhpn2B.11.00U9000/80008/05/0318:26:32%usr%sys%wio%idle18:26:3480912018:26:36781111018:26:3878913118:26:4081109118:26:42751014018:26:4476815018:26:4680910118:26:48781111018:26:50791010018:26:52811090Average7910110其中的%usr指的是用户进程使用的cpu资源的百分比,%sys指的是系统资源使用cpu资源的百分比,%wio指的是等待io完成的百分比,这是值得我们观注的一项,%idle即空闲的百分比。如果wio列的值很大,如在35%以上,说明你的系统的IO存在瓶颈,你的CPU花费了很大的时间去等待IO的完成。Idle很小说明系统CPU很忙。像我的这个例如,可以看到wio平均值为11说明io没什么特别的问题,而我的idle值为零,说明我的cpu已经满负荷运行了。64.关注一下内存。常用的工具便是vmstat,对于hp-unix来说可以用glance,Aix来说可以用topas,当你发现vmstat中pi列非零,memory中的free列的值很小,glance,topas中内存的利用率多于80%时,这时说明你的内存方面应该调节一下了,方法大体有以下几项。a.划给Oracle使用的内存不要超过系统内存的1/2,一般保在系统内存的40%为益。c.如果你的连接特别多,可以使用MTS的方式d.打全补丁,防止内存漏洞。65、查找前十条性能差的sql.SELECTFROM(SELECTPARSING_USER_IDEXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,sql_textFROMv$sqlareaORDERBYdisk_readsDESC)WHEREROWNUM<10;66、查看占io较大的正在运行的sessionSELECTse.sid,se.serial#,pr.SPID,se.username,se.status,se.terminal,se.program,se.MODULE,se.sql_address,st.event,st.p1text,si.physical_reads,FROMv$sessionse,v$session_waitst,v$sess_iosi,v$processprANDse.sid>6ANDst.wait_time=0ANDst.eventNOTLIKE'%SQL%'ORDERBYphysical_readsDESC对检索出的结果的几点说明:<1>我是按每个正在等待的session已经发生的物理读排的序,因为它与实际的IO相关。<2>你可以看一下这些等待的进程都在忙什么,语句是否合理?Selectsql_addressfromv$sessionwheresid=;Selectfromv$sqltextwhereaddress=;执行以上两个语句便可以得到这个session的语句。你也以用altersystemkillsession'sid,serial#';把这个session杀掉。<3>应观注一下event这列,这是我们调优的关键一列,下面对常出现的event做以简要的说明:a、bufferbusywaits,freebufferwaits这两个参数所标识是dbwr是否够用的问题,与IO很大相关的,当v$session_wait中的freebufferwait的条目很小或没有的时侯,说明你的系统的dbwr进程决对够用,不用调整;freebufferwait的条目很多,你的系统感觉起来一定很慢,这时说明你的dbwr已经不够用了,它产生的wio已经成为你的数据库性能的瓶颈,这时的解决方法如下:a.1增加写进程,同时要调整db_block_lru_latches参数例如:修改或添加如下两个参数db_writer_processes=4db_block_lru_latches=8a.2开异步IO,IBM这方面简单得多,hp那么麻烦一些,可以与Hp工程师联系。b、dbfilesequentialread,指的是顺序读,即全表扫描,这也是我们应该尽量减少的局部,解决方法就是使用索引、sql调优,同时可以增大db_file_multiblock_read_count这个参数。c、dbfilescatteredread,这个参数指的是通过索引来读取,同样可以通过增加db_file_multiblock_read_count这个参数来提高性能。d、latchfree,与栓相关的了,需要专门调节。e、其他参数可以不特别观注。67.文件说明<1>监听器日志文件以8I为例<2>.监听器参数文件以8I为例<3>.TNS连接文件以8I为例<4>.SqlNet环境文件以8I为例<5>.警告日志文件以8I为例<6>.根本结构以8I为例<7>.建立数据字典视图以8I为例<8>.建立审计用数据字典视图以8I为例<9>.建立快照用数据字典视图以8I为例OracleDBA笔试题参考答案一:SQLtuning类1、列举几种表连接方式答:hashjoin/mergejoin/nestloop(clusterjoin)/indexjoin解析:Hashjoin的主要资源消耗在于CPU〔在内存中创立临时的hash表,并进行hash计算〕,而mergejoin的资源消耗主要在于此盘IO〔扫描表或索引〕。在并行系统中,hashjoin对CPU的消耗更加明显。所以在CPU紧张时,最好限制使用hashjoin。在绝大多数情况下,hashjoin效率比其他join方式效率更高:在Sort-MergeJoin(SMJ),两张表的数据都需要先做排序,然后做merge。因此效率相对最差;Nested-LoopJoin(NL)效率比SMJ更高。特别是当驱动表的数据量很大〔集的势高〕时。这样可以并行扫描内表。Hashjoin效率最高,因为只要对两张表扫描一次。2、不借助第三方工具,怎样查看sql的执行方案程序代码setautotonexplainplansetstatement_id=&item_idfor&sql;selectfromtable(dbms_xplan.display);3、如何使用CBO,CBO与RULE的区别在optimizer_mode=choose时,如果表有统计信息(分区表外),优化器将选择CBO,否那么选RBO。RBO遵循简单的分级方法学,使用15种级别要点,当接收到查询,优化器将评估使用到的要点数目,然后选择最正确级别(最少的数量)的执行路径来运行查询。CBO尝试找到最低本钱的访问数据的方法,为了最大的吞吐量或最快的初始响应时间,计算使用不同的执行方案的本钱,并选择本钱最低的一个,关于表的数据内容的统计被用于确定执行方案。4、如何定位重要(消耗资源多)的SQL答:根据v$sqlarea中的逻辑读/disk_read。以及寻找CPU使用过量的session,查出当前session的当前SQL语句,或者:监控WIN平台Oracle的运行程序代码selectsql_textfromv$sqlwheredisk_reads>1000or(executions>0andbuffer_gets/executions>30000);5、如何跟踪某个session的SQL程序代码execdbms_system.set_sql_trace_in_session(sid,serial#,&sql_trace);selectsid,serial#fromv$sessionwheresid=(selectsidfromv$mystatwhererownum=1);execdbms_system.set_ev(&sid,&serial#,&event_10046,&level_12,'');6、SQL调整最关注的是什么答:逻辑读,IO量;查看该SQL的responsetime(dbblockgets/consistentgets/physicalreads/sorts(disk))7、说说你对索引的认识(索引的结构、对dml影响、为什么提高查询性能)答:默认的索引是b-tree.对insert的影响.(分裂,要保证tree的平衡)对delete的影响.(删除行的时候要标记改节点为删除).对update的影响,如果更新表中的索引字段,那么要相应的更新索引中的键值。查询中包含索引字段的键值和行的物理地址b-treeindex/bitmapindex/functionindex/patitionalindex(local/global)索引通常能提高select/update/delete的性能,会降低insert的速度。8、使用索引查询一定能提高查询的性能吗?为什么索引就是为了提高查询性能而存在的,如果在查询中索引没有提高性能,只能说是用错了索引,或者讲是场合不同9、绑定变量是什么?绑定变量有什么优缺点?答:通俗的说,绑定变量就是变量的一个占位符,使用绑定变量可以减少只有变量值不同的语句的解析。绑定变量是相对文本变量来讲的,所谓文本变量是指在SQL直接书写查询条件,这样的SQL在不同条件下需要反复解析,绑定变量是指使用变量来代替直接书写条件,查询bindvalue在运行时传递,然后绑定执行。优点是减少硬解析,降低CPU的争用,节省shared_pool;缺点是不能使用histogram,sql优化比拟困难10、如何稳定(固定)执行方案答:使用storedoutline。程序代码query_rewrite_enabled=truestar_transformation_enabled=trueoptimizer_features_enable=9.2.0创立并使用storedoutlineoraclecanautomaticallycreateoutlinesforallSQLstatements,oryoucancreatethemforspecificSQLstatements.Ineithercase,theoutlinesderivetheirinputfromtheoptimizer.oraclecreatesstoredoutlinesautomaticallywhenyousettheinitializationparameterCreate_STORED_OUTLINEStotrue.Whenactivated,oraclecreatesoutlinesforallcompiledSQLstatements.YoucancreatestoredoutlinesforspecificstatementsusingtheCreateOUTLINEstatement.11:和排序相关的内存在8i和9i分别怎样调整,临时表空间的作用是什么Oracle8i中sort_area_size/sort_area_retained_size决定了排序所需要的内存如果排序操作不能在sort_area_size中完成,就会用到temp表空间Oracle9i中如果workarea_size_policy=auto时,排序在pga内进行,通常pga_aggregate_target的1/20可以用来进行disksort;如果workarea_size_policy=manual时,排序需要的内存由sort_area_size决定在执行orderby/groupby/distinct/union/createindex/indexrebuild/minus等操作时,如果在pga或sort_area_size中不能完成,排序将在临时表空间进行(disksort),临时表空间主要作用就是完成系统中的disksort.12:存在表T(a,b,c,d),要根据字段c排序后取第21—30条记录显示,请给出sql程序代码createtablet(anumber(,bnumber(,cnumber(,dnumber();/beginforiin1..300loopinsertintotvalues(mod(i,2),i/2,dbms_random.value(1,300),i/4);endloop;end;/selectfrom(selectc.,rownumasrnfrom(selectfromtorderbycdesc)c)wherernbetween21and30;/selectfrom(selectfromtestorderbycdesc)xwhererownum<30minusselectfrom(selectfromtestorderbycdesc)ywhererownum<20orderby3desc相比之minus性能较差11、和排序相关的内存在8i和9i分别怎样调整,临时表空间的作用是什么?答:8i:使用sort_area_size,hash_area_size,每个session分配相同的值,不管有无使用。9i:使用pga_aggregate来统一管理。临时表空间的作用:在sort_area_size中不能完成的局部在临时表空间完成,临时表空间在重建索引,创立临时表等都要用到。还有hashjoin不能完成的也在临时表空间中做。12、存在表T(a,b,c,d),要根据字段c排序后取第21—30条记录显示,请给出sqlselecta,b,c,dfrom(selecta,b,c,dfromTorderbyc)whererownum<=30minusselecta,b,c,dfrom(selecta,b,c,dfromTorderbyc)whererownum<=20;或者:selectfrom(selectrownumrn,a.from(selecta,b,c,dfromTorderbyc)a)wherernbetween21and30;二:数据库根本概念类1、pctusedandpctfree表示什么含义有什么作用答:表示数据块什么时候移入和移出freelist。pctused:如果数据块的使用率小于pctused的值,那么该数据块重新参加到fresslist中。pctfree:如果数据块的使用率高于pctfree的值,那么该数据块从freelist中移出。2、简单描述table/segment/extent/block之间的关系答:一个table至少是一个segment,如果分区表,那么每个分区是一个segment,table可以看成是一个逻辑上的概念,segment可以看成是这个逻辑概念的物理实现;segment由一个或多个extents组成,segment不可以跨表空间但可以跨数据文件;extent由多个连续的blocks组成,不可以跨数据文件;block由1-多个os块组成,是oraclei/o的最小存储单位。3、描述tablespace和datafile之间的关系答:tablespace是逻辑上的概念,datafile是物理上的概念。一个tablespace可以由多个datafile组成,一个datafile不能跨越多个tablespace。4、本地管理表空间和字典管理表空间的特点,ASSM有什么特点答:一个使用freelist管理,一个使用位图管理。5、回滚段的作用是什么答:保存数据的前像,保证数据读取的时间点一致性。Oracle里数据的多版本特性就是通过回滚段来实现的,正因为此,Oracle数据库实现了读写不竞争的性能优势!6、日志的作用是什么答:纪录对数据库的操作,便与恢复。7、SGA主要有那些局部,主要作用是什么答:db_cache(缓存数据块),shared_pool(缓存sql,执行方案,数据字典信息等),large_pool(MTS模式、parallel、rman等要用到),javapool(java程序如SQLJ存储过程运行时要用到)8、racle系统进程主要有哪些,作用是什么答:smon〔合并空间,实例恢复〕,pmon〔清理失败的进程〕,归档进程〔负责在日志切换的时候归档日志文件〕,lgmr〔日志书写器进程,负责写日志〕,ckpt(检查点进程,触发检查点),dbwr(数据库写入器,负责把数据写入导datafile)三:备份恢复类1、备份如何分类答:逻辑备份(exp)与物理备份。或者冷备份与热备份。2、归档是什么含义答:把日志文件放到另一个地方。3、如果一个表在2004-08-0410:30:00被drop,在有完善的归档和备份的情况下,如何恢复答:拷贝备份,recoverdatabaseuntiltime2004-08-0410:30:00alterdatabaseopenresetlogs;4、rman是什么,有何特点答:rman叫恢复管理器.特点很多。可以在线备份,到少目标数据库是mount状态。1:热备份。2:可以存储脚本。3:可以增量备份。4:自动管理备份集。5、standby的特点答:利用传输重做日志来到达同步的目的。可以设定多个保护级别,9i后支持逻辑standbyDB。6、对于一个要求恢复时间比拟短的系统(数据库50G,每天归档5G),你如何设计备份策略答:每天一个全备份。四:系统管理类1、对于一个存在系统性能的系统,说出你的诊断处理思路答:做一个statspack,根据top5,systemload,topsql等来做相应的调整。2、列举几种诊断IO、CPU、性能状况的方法答:hp-unix:iostat-x15;top/vmstat/glance3、对statspack有何认识答:一个性能诊断工具而已,其本质就是在两个时间点采样两个系统数据。(动态性能视图),然后根据两个snapshot,产生一个报告。4、如果系统现在需要在一个很大的表上创立一个索引,你会考虑那些因素,如何做以尽量减小对应用的影响答:1:增大sort_area_size(8i)/pga_aggregate_target(9i)值。2:如果表有分区〔一般大表都要用到分区的〕,按分区逐个建索引,如果是本地索引的话;3:系统空闲的时候建。5、对raid10和raid5有何认识答:raid10是先镜像后条带,适合对写入速度要求较高的数据库系统,特别是onlineredolog文件,raid5适合大局部的数据库系统和数据仓库系统,读性能优于写性能。五:综合随意类1、你最擅长的是oracle哪局部?答:性能/sql调优、备份恢复。2、喜欢oracle吗?喜欢上论坛吗?或者偏好oracle的哪一局部?答:://itpub.net/,Oracle的SQL优化。3、随意说说你觉得oracle最有意思的局部或者最困难的局部答:SQL调优,最困难的是Oracle的网络管理,Oracle的ConnectManager没用过。4、为何要选择做DBA呢?答:爱好加职业历史积累。5、如果系统现在需要在一个很大的表上创立一个索引,你会考虑那些因素,如何做以尽量减小对应用的影响答:1.增大sort_area_size(8i)/pga_aggregate_target(9i)值。2.用并行的方式来建。3.系统空闲的时候建。六:其他什么是聚集索引,什么是非聚集索引,什么又是主键?聚簇索引的顺序就是数据的物理存储顺序,叶节点就是数据节点。非聚簇索引的顺序与数据物理排列顺序无关,叶节点仍然是索引节点,只不过有一个指针指向对应的数据块。能够唯一表示数据表中的每个记录的字段或者字段的组合就称为主键,通过它可强制表的实体完整性。1、事务是什么?答:所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。2、oracle中truncate和delete命令有何区别?答:(1)delete将在回滚段中产生回滚信息,truncate不产生,因此无论表中的记录多少,truncate执行都很快。(2)truncate是DDL,执行隐含的commit,truncate不能回滚。任何没有提交的DML改变也将会和truncate一起提交。(3)truncate重置表及其索引高水位标志。全表扫描和索引快速全扫描读高水位标志下的所有数据块,因此在delete后全扫描性能没有提高,但truncate后将会变快。(4)truncate不触发delete触发器。(5)没有对象权限允许一个用户truncate另一个用户的表。这样做需要DROPANYTABLE系统权限。(6)当一个表被truncate,表及其索引的存储将被重置回初始大小。而delete不收缩表及其索引的大小。(7)当父表有一个可用的引用完整性约束时不能被truncate。必须先disable引用父表的外键约束,再truncate。3、Oracle中char和varchar2数据类型有什么区别?有数据〞test〞分别存放到char(10)和varchar2(10)类型的字段中,其存储长度及类型有何区别?答:char是定长字符类型,varchar2是变长字符类型。“test〞在char(10)中被补齐空格,存储长度是10字节,在varchar2(10)中存储长度是4字节。数据技术求职点评:OracleDBA面试题IT工作市场是如此的紧张,每个可获得的职位都有一堆人在申请。NaveenNahata为OracleE-BusinessSuite的数据库管理员申请者提供了以下一些面试时的技术问题,它可以帮助申请者们快速脱颖而出。如果你的面试官有类似的问题问你,发个邮件给我,我将会把它添加在列表中。――编者按问题1如果信息采集管理系统(ICM)崩溃了怎么办?2你如何加速打补丁的过程?3打补丁的过程中出错了,你怎么办?4请提供克隆过程和克隆之后采取的手工操作的大概步骤。5介绍一下AutoConfig。AutoConfig是如何知道XML文件中的哪个树脂需要被放入哪一个文件的?6你能告诉我,你对一个发生故障的自效劳登录问题做哪些测试吗?你要检查哪个配置文件操作选项和文件?7如果你不能看到并发管理日志和输出文件,是哪里出错了?8你是如何更改并发管理日志和输出文件的位置的?9如果用户正遇到性能方面的问题,你如何找到问题的原因?10你如何更改应用程序的密码?11请写出DBC文件的位置,并且解释它的重要性和应用程序如何知道DBC文件名?答案1所有其他的管理器都会继续工作。ICM只会处理队列控制请求,意思是开启和关闭其他并发的管理器。22.1你可以合并多个补丁。2.2你可以为一个非交互的补丁创立一个响应文件。2.3你可以通过选项(nocompiledb,nomaintainmrc,nocompilejsp)来应用补丁,并且在应用了所有的补丁之后,一次运行它们。3查看失败工作的日志,找到并且纠正错误,用adctrl工具重新开启工作。4在源文件上(所有层)运行pre-clone,使用RMAN复制数据库(或者从热或者冷备份中重新存储数据库),拷贝文件系统,然后在目标文件(所有层)上运行post-clone。手工步骤(可能会更多):4.1改变所有的非网站配置选项数值(快速克隆的话,只改变网站级别的配置文件选项)。4.2修改工作流和并发管理器表。?.3更改打印机。5AutoConfig使用了一个上下文文件来维护关键的配置文件。一个上下文文件就是一个XML文件,在$APPL_TOP/admin目录下,进行集中式的存储。当你运行AutoConfig的时候,它读取XML文件,并且创立所有的AutoConfig管理配置文件。对于AutoConfig维护的每个配置文件,都存在一个临时文件来判断哪个数值是从哪个XML文件中得来的。66.1检查DBC文件中的guest的用户名和密码,配置选项guest的用户名和密码、数据库。6.2查看apache/jserv是否启动了。6.3运行IsItWorking,FND_WEB.PING,aoljtest等。7很有可能是FNDFS监听器停止了。看看FND_CONCURRENT_REQUESTS表中的OUTFILE_NODE_NAME和LOGFILE_NODE_NAME的数值。看看FND_NODES表。看看tnsnames.ora中的FNDFS_entry。8日志问卷爱女的位置是由$APPLCSF/$APPLLOG参数来决定的,输出文件的位置是由$APPLCSF/$APPLOUT决定的。99.1追踪这个会话(用等待)并且使用tkprof来分析追踪文件。9.2生成statspack报告并进行分析。9.3使用top/iostat/sar/vmstat监控O/s。9.4通过ping这类根本的测试结果来判断网络的瓶颈。1010.1使用FNDCPASS来更改APPS密码。10.2手工修改wdbsvr.app/cgiCMD.dat文件。10.3更改所有从其他环境指过来的数据库链接。1111.1位置:$FND_TOP/secureDirectory11.2重要性:在其他事务中指向数据库效劳器。11.3应用程序通过使用“ApplicationsDatabaseId.〞来了解DBC文件的名字。oracledba面试题数据库切换日志的时候,为什么一定要发生检查点?这个检查点有什么意义?表空间管理方式有哪几种,各有什么优劣。本地索引与全局索引的差异与适用情况。一个表avarchar2(1),bnumber(1),cchar(2),有100000条记录,创立B-Tree索引在字段a上,那么表与索引谁大?为什么?9i的dataguard有几种模式,各有什么差异。执行方案是什么,查看执行方案一般有哪几种方式。简单描述一下nestloop与hashjoin的差异。dbfilesequentialread与dbfilescatteredread等待的差异,如果以上等待比拟多,证明了什么问题?librarycachepin与librarycachelock是什么地方的等待事件,一般说明什么问题?在一个247的应用上,需要把一个访问量很大的1000万以上数据级别的表的普通索引(a,b)修改成唯一约束(a,b,c),你一般会选择怎么做,请说出具体的操作步骤与语句。如果一个linux上的oracle数据库系统突然变慢,你一般从哪里去查找原因。说明一下对raid5与raid01/10的认识。列举5个10g的新特性ORACLEDBA面试题集一:SQLtuning类1列举几种表连接方式等连接、非等连接、自连接、外连接〔左、右、全〕2不借助第三方工具,怎样查看sql的执行方案I)使用ExplainPlan,查询PLAN_TABLE;EXPLAINPLANSETSTATEMENT_ID='QUERY1'FORSELECTFROMaWHEREaa=1;SELECToperation,options,object_name,object_type,ID,parent_idFROMplan_tableWHERESTATEMENT_ID='QUERY1'ORDERBYID;II)SQLPLUS中的SETTRACE即可看到ExecutionPlanStatisticsSETAUTOTRACEON;3:如何使用CBO,CBO与RULE的区别IF初始化参数OPTIMIZER_MODE=CHOOSETHEN--(8IDEFAULT)IF做过表分析THEN优化器Optimizer=CBO(COST);/高效/ELSE优化器Optimizer=RBO(RULE);/高效/ENDIF;ENDIF;区别:RBO根据规那么选择最正确执行路径来运行查询。CBO根据表统计找到最低本钱的访问数据的方法确定执行方案。使用CBO需要注意:I)需要经常对表进行ANALYZE命令进行分析统计;II)需要稳定执行方案;III)需要使用提示(Hint);使用RULE需要注意:I)选择最有效率的表名顺序II)优化SQL的写法;4如何定位重要(消耗资源多)的SQL使用CPU多的用户sessionSELECTa.SID,spid,status,SUBSTR(a.program,1,40)prog,a.terminal,a.SQL_TEXT,osuser,VALUE/60/100VALUEFROMv$sessiona,v$processb,v$sesstatcORDERBYVALUEDESC;5如何跟踪某个session的SQL利用TRACE跟踪ALTERSESSIONSETSQLTRACEON;COLUMNSQLformata200;SELECTmachine,sql_textSQLFROMv$sqltexta,v$sessionbWHEREaddress=sql_addressANDmachine='&A'ORDERBYhash_value,piece;6SQL调整最关注的是什么检查系统的I/O问题sar-d能检查整个系统的iostat〔IOstatistics〕7说说你对索引的认识〔索引的结构、对dml影响、对查询影响、为什么提高查询性能〕l索引有B-TREE、BIT、CLUSTER等类型。ORACLE使用了一个复杂的自平衡B-tree结构;l通常来说,在表上建立恰当的索引,查询时会改良查询性能。但在进行插入、删除、修改时,同时会进行索引的修改,在性能上有一定的影响。l有索引且查询条件能使用索引时,数据库会先度取索引,根据索引内容和查询条件,查询出ROWID,再根据ROWID取出需要的数据。由于索引内容通常比全表内容要少很多,因此通过先读索引,能减少I/O,提高查询性能。8使用索引查询一定能提高查询的性能吗?为什么l通常,通过索引查询数据比全表扫描要快.但是我们也必须注意到它的代价.n索引需要空间来存储,也需要定期维护,每当有记录在表中增减或索引列被修改时,n索引本身也会被修改.这意味着每条记录的INSERT,DELETE,UPDATE将为此多付出4,5次的磁盘I/O.因为索引需要额外的存储空间和处理,那些不必要的索引反而会使查询反响时间变慢.l使用索引查询不一定能提高查询性能,索引范围查询(INDEXRANGESCAN)适用于两种情况:n基于一个范围的检索,一般查询返回结果集小于表中记录数的30%宜采用;n基于非唯一性索引的检索9绑定变量是什么?绑定变量有什么优缺点?l绑定变量是指在SQL语句中使用变量,改变变量的值来改变SQL语句的执行结果。l优点:使用绑定变量,可以减少SQL语句的解析,能减少数据库引擎消耗在SQL语句解析上的资源。提高了编程效率和可靠性。减少访问数据库的次数,就能实际上减少ORACLE的工作量。l缺点:经常需要使用动态SQL的写法,由于参数的不同,可能SQL的执行效率不同;10如何稳定(固定)执行方案可以在SQL语句中指定执行方案。使用HINTS;11和排序相关的内存在8i和9i分别怎样调整,临时表空间的作用是什么SORT_AREA_SIZE在进行排序操作时,如果排序的内容太多,内存里不能全部放下,那么需要进行外部排序,此时需要利用临时表空间来存放排序的中间结果。12存在表T(a,b,c,d),要根据字段c排序后取第21—30条记录显示,请给出sqlSELECTFROM(SELECTROWNUMASrow_num,tmp_tab.FROM(SELECTa,b,c,dFROMTORDERBYc)tmp_tabWHEREROWNUM<=30)WHERErow_num>=20ORDERBYrow_num;二:数据库根本概念类1Pctusedandpctfree表示什么含义有什么作用pctused与pctfree控制数据块是否出现在freelist中,pctfree控制数据块中保存用于update的空间,当数据块中的freespace小于pctfree设置的空间时,该数据块从freelist中去掉,当块由于dml操作freespace大于pct_used设置的空间时,该数据库块将被添加在freelist链表中。2简单描述tablespace/segment/extent/block之间的关系ntablespace:一个数据库划分为一个或多个逻辑单位,该逻辑单位成为表空间;每一个表空间可能包含一个或多个Segment;nSegments:Segment指在tablespace中为特定逻辑存储结构分配的空间。每一个段是由一个或多个extent组成。包括数据段、索引段、回滚段和临时段。nExtents:一个extent由一系列连续的Oracleblocks组成.ORACLE为通过extent来给segment分配空间。nDataBlocks:Oracle数据库最小的I/O存储单位,一个datablock对应一个或多个分配给datafile的操作系统块。3描述tablespace和datafile之间的关系◎一个表空间可包含一个或多个数据文件。◎表空间利用增加或扩展数据文件扩大表空间,表空间的大小为组成该表空间的数据文件大小的和。◎一个datafile只能属于一个表空间;4本地管理表空间和字典管理表空间的特点,ASSM有什么特点n本地管理表空间:〔9i默认〕n空闲块列表存储在表空间的数据文件头。n特点:减少数据字典表的竞争,当分配和收缩空间时会产生回滚,不需要合并n字典管理的表空间:〔8i默认〕n空闲块列表存储在数据库中的字典表里.n特点:片由数据字典管理,可能造成字典表的争用。存储在表空间的每一个段都会有不同的存储字句,需要合并相邻的块;5回滚段的作用是什么回滚段用于保存数据修改前的映象,这些信息用于生成读一致性数据库信息、在数据库恢复和Rollback时使用。一个事务只能使用一个回滚段。6日志的作用是什么日志文件〔LogFile〕记录所有对数据库数据的修改,主要是保护数据库以防止故障,以及恢复数据时使用。其特点如下:a)每一个数据库至少包含两个日志文件组。每个日志文件组至少包含两个日志文件成员。b)日志文件组以循环方式进行写操作。c)每一个日志文件成员对应一个物理文件。7SGA主要有那些局部,主要作用是什么系统全局区〔SGA〕:是ORACLE为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。SGA主要包括:ua)共享池(sharedpool):用来存储最近执行的SQL语句和最近使用的数据字典的数据。ub)数据缓冲区(databasebuffercache):用来存储最近从数据文件中读写过的数据。uc)重作日志缓冲区〔redologbuffer〕:用来记录效劳或后台进程对数据库的操作。另外在SGA中还有两个可选的内存结构:ud)Javapool:用来存储Java代码。ue)Largepool:用来存储不与SQL直接相关的大型内存结构。备份、恢复使用。8Oracle系统进程主要有哪些,作用是什么u数据写进程(DBWR):负责将更改的数据从数据库缓冲区高速缓存写入数据文件u日志写进程(LGWR):将重做日志缓冲区中的更改写入在线重做日志文件u系统监控(SMON):检查数据库的一致性如有必要还会在数据库翻开时启动数据库的恢复u进程监控(PMON):负责在一个Oracle进程失败时清理资源u检查点进程(CKPT):负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。u归档进程(ARCH):在每次日志切换时把已满的日志组进行备份或归档u恢复进程(RECO):保证分布式事务的一致性,在分布式事务中,要么同时commit,要么同时rollback;u作业调度器(CJQ):负责将调度与执行系统中已定义好的job,完成一些预定义的工作.三:备份恢复类1备份如何分类n物理备份u物理备份是最主要的备份方式。用于保证数据库在最小的数据库丧失或没有数据丧失的情况下得到恢复。n冷物理u冷物理备份提供了最简单和最直接的方法保护数据库因物理损坏丧失。建议在以下几种情况中使用。u对一个已经存在大最数据量的数据库,在晚间数据库可以关闭,此时应用冷物理备份。u对需对数据库效劳器进行升级,〔如更换硬盘〕,此时需要备份数据库信息,并在新的硬盘中恢复这些数据信息,建议采用冷物理备份。n热物理u主要是指备份过程在数据库翻开并且用户可以使用的情况下进行。需要执行热物理备份的情况有:u由于数据库性质要求不间断工作,因而此时只能采用热物理备份。u由于备份的要求的时间过长,而数据库只能短时间关闭时。n逻辑备份(EXP/IMP)u逻辑备份用于实现数据库对象的恢复。但不是基于时间点可完全恢复的备份策略。只能作为联机备份和脱机备份的一种补充。n完全逻辑备份u完全逻辑备份是将整个数据库导出到一个数据库的格式文件中,该文件可以在不同的数据库版本、操作系统和硬件平台之间进行移植。n指定表的逻辑备份u通过备份工具,可以将指定的数据库表备份出来,这可以防止完全逻辑备份所带来的时间和财力上的浪费。2归档是什么含义n归档是归档当前的联机redo日志文件。nSVRMGR>altersystemarchivelogcurrent;n数据库只有运行在ARCHIVELOG模式下,并且能够进行自动归档,才可以进行联机备份。有了联机备份才有可能进行完全恢复。3如果一个表在2004-08-0410:30:00被drop,在有完善的归档和备份的情况下,如何恢复I)9i新增的FLASHBACK应该可以;II)Logminer应该可以找出DML。III)有完善的归档和备份,先归档当前数据,然后可以先恢复到删除的时间点之前,把DROP的表导出来,然后再恢复到最后归档时间;不过,我没试过,都是理论的说!!4rman是什么,有何特点nRMAN可以用来备份和复原数据库文件、归档日志和控制文件。它也可以用来执行完全或不完全的数据库恢复。nRMAN启动数据库上的Oracle效劳器进程来进行备份或复原。备份、复原、恢复是由这些进程驱动的。n注意:RMAN不能用于备份初始化参数文件和口令文件。具有如下特点:n功能类似物理备份,但比物理备份强大N倍;n可以压缩空块;n可以在块水平上实现增量;n可以把备份的输出打包成备份集,也可以按固定大小分割备份集;n备份与恢复的过程可以自动管理;n可以使用脚本〔存在Recoverycatalog中〕n可以做坏块监测5standby的特点备用数据库〔standbydatabase〕:ORACLE推出的一种高可用性(HIGHAVAILABLE)数据库方案,在主节点与备用节点间通过日志同步来保证数据的同步,备用节点作为主节点的备份可以实现快速切换与灾难性恢复,从920开始,还开始支持物理与逻辑备用效劳器。9i中的三种数据保护模式分别是:nMAXIMIZEPROTECTION:最大数据保护与无数据分歧,LGWR将同时传送到备用节点,u在主节点事务确认之前,备用节点也必须完全收到日志数据。如果网络不好,引起LGWR不能传送数据,将引起严重的性能问题,导致主节点DOWN机。nMAXIMIZEAVAILABILITY:无数据丧失模式,允许数据分歧,允许异步传送。u正常情况下运行在最大保护模式,在主节点与备用节点的网络断开或连接不正常时,自动切换到最大性能模式,u主节点的操作还是可以继续的。在网络不好的情况下有较大的性能影响。nMAXIMIZEPERFORMANCE:这种模式应当可以说是从8i继承过来的备用效劳器模式,异步传送,u无数据同步检查,可能丧失数据,但是能获得主节点的最大性能。9i在配置DATAGUARD的时候默认就是MAXIMIZEPERFORMANCE没实践过,只是把答案列出来。6对于一个要求恢复时间比拟短的系统(数据库50G,每天归档5G),你如何设计备份策略数据库比拟大逻辑备份没什么必要,每天归档5G,每周三/周六自动归档10G,每月RMAN归档全库。应该有standby。我对备份和恢复缺少实践时机,JUSTPAPER。四:系统管理类1对于一个存在系统性能的系统,说出你的诊断处理思路I)做statspack收集系统相关信息了解系统大致情况/确定是否存在参数设置不适宜的地方/查看top5event/查看topsql等II)查v$system_event/v$session_event/v$session_wait从v$system_event开始,确定需要什么资源(dbfilesequentialread)等深入研究v$session_event,确定等待事件涉及的会话III)从v$session_wait确定详细的资源争用情况通过v$sql/v$sqltext/v$sqlarea表确定disk_reads、(buffer_gets/executions)值较大的SQL2列举几种诊断IO、CPU、性能状况的方法topuptimevmstatiostatstatspacksql_trace/tkprof查v$system_event/v$session_event/v$session_wait查v$sqlarea(disk_reads或buffer_gets/executions较大的SQL)或者第三方的监视工具,TOAD就不错。3对statspack有何认识认识不深。仅限了解。StapSpack是Oracle公司提供的一个收集数据库运行性能指标的软件包。可以做数据库健康检查报告。4如果系统现在需要在一个很大的表上创立一个索引,你会考虑那些因素,如何做以尽量减小对应用的影响可以先表分析一下,然后测试创立索引前后对应用的性能影响;需要考虑的是该索引列不经常更新,不是有很多重复值的情况时,在大表中使用索引特别有效.创立的索引可以跟数据表分不同表空间存储。5对raid10和raid5有何认识几乎不懂。没配过磁盘阵列五:综合随意类1你最擅长的是oracle哪局部?pl/sql及sql优化2喜欢oracle吗?喜欢上论坛吗?或者偏好oracle的哪一局部?喜欢。PL/SQL比拟得心应手。3随意说说你觉得oracle最有意思的局部或者最困难的局部我对数据库的备份/恢复和性能调优经验明显缺乏,自然觉得有些困难。基于ORACLE的研究应该是个宽广的领域,所以我觉得还是有意思的。4为何要选择做DBA呢?我对数据库的备份/恢复和性能调优经验明显缺乏,主要是缺乏环境和交流。因此,算不上什么DBA。不过因此我更需要这样的时机。不过就整个ORACLE来说,一直从事与它相关的工作,感情还是颇深的。放弃可惜。而且就技术本身而言我觉得自己还是有学习和创新的能力,它的诸如数据仓库,数据挖掘之类的领域也很广。一份DBA的面试题ORACLE笔试选择题〔在正确的答案前打勾〕1,下面哪一个选项不属于调优目标的A,共享应用代码B,减少用户对资源的等待C,为没有剩余空间的表空间添加数据文件D,减少IO操作2,数据库报警日志文件的位置A,user_dump_dest参数指定的位置B,alert_dump_dest参数指定的位置C,archive_log_dest参数指定的位置D,background_dump_dest参数指定的位置3,以下哪两种方法可以用来设置会话跟踪A,使用dbms_system.set_sql_trace_in_session过程B,通过altersessionsetsql_trace=trueC,使用dbms_session.set_sql_trace_in_session过程D,通过altersessionsetlog_checkpoints_to_alert=true4,以下哪些视图是数据字典视图A,v$sysstatB,dba_objectsC,dba_tablesD,dba_indexes5,以下哪个视图可以获取数据库的启动时间A,v$databaseB,v$sesstatC,v$lockD,v$instance6,对于v$session视图表达正确的选项是A,可以通过此视图查询出一个会话的sid、serial#B,可以直接通过此视图查询出此会话的机器的IP地址C,可以通过此视图查询出一个会话的登陆数据库的时间D,可以通过此视图查询出用户通过什么程序连接数据库7,关于statspack,以下哪个说法是错误的A,statspack是一个数据库性能诊断工具B,使用statspack时需要将参数timed_statistics设置为trueC,statspack在使用时最少需要执行2次statspack..snapD,statspack在建库时,自动被创立。8,以下哪些语句属于DML语句A,selectcount()fromdba_tables;B,createtabletest(anumber);C,altertabletestnologging;D,deletefromtest;9,在sql的执行过程中,哪一步进行共享池的分配A,CreateaCursor创立游标B,ParsetheStatement分析语句C,BindAnyVariables绑定变量D,ParallelizetheStatement并行执行语句10,在sql的书写过程中,使用绑定变量的主要作用A,共享SQLB,增加sql的执行速度C,改变执行方案D,增加sql的可读性11,关于优化器的说法正确的选项是A,oracle主要提供了2种优化器:基于规那么的优化器〔rule〕和基于花费的优化器〔cost〕B,基于规那么的优化器通过访问路径的优先等级,来决定执行方案C,基于花费的优化器,通过IO,CPU,网络情况,来选择资源消耗最少的执行方案D,oracle9i中,基于花费的优化器不需要统计信息12,以下哪种数据访问路径最快A,TableAccessbyROWIDB,indexuniquescanC,indexrangescanD,indexfullscanE,indexfastfullscan13,以下哪种连接方式是需要连接的两个行源是有序的A,合并连接B,嵌套循环C,哈希连接D,笛卡儿积14,以下关于索引描述正确的选项是A,所有的索引都不包含null值B,btree索引的高度越高越好C,只要是取值范围都不好的列,就可以建立bitmap索引D,索引可以在线rebuild,而不影响对于表的dml操作15,关于索引不能被使用,可能的原因有A,where子句没有包含被索引的列B,表或索引的统计信息错误C,where子句的索引列上存在隐含数据类型转换D,返回的行源很多E,使用了like’%???%’16,关于函数索引说法错误的选项是A,使用函数索引需要QUERYREWRITE权限B,使用函数索引需要GLOBALQUERYREWRITE权限C,可用通过函数索引来实现只索引某些行数据的目的D,函数索引很适合oltp系统17,viewthisSELECTstatement:1.SELECTdepartment,MAX(salary)2.FROMemployee3.WHEREdepartmentIN(200,300,400)and4.MAX(salary)>600005.GROUPBYdepartment;Whichlineinthestatementcauseserror?A.1B.3C.4D.518,Whichthreecommandscauseatransactiontoend?A.ALTERB.GRANTC.DELETED.INSERTE.UPDATEF.ROLLBACK简答题1,ORACLE的静态结构包含哪些类型的文件?2,TRACE文件有哪些种类?一般存放在什么地方?3,ORACLE的主要内存结构有哪些?软件代码区:用于存储正在执行的或可以执行的程序代码系统全局区(SGA):一组由ORACLE分配的共享的内存结构,可包含一个数据库实例的数据或控制信息程序全局区(PGA):一个内存区,包含单个进程的数据和控制信息排序区:ORACLE利用该内存排序数据4,REDOLOG的作用是什么,如果REDOLOG故障如何修复?重做日志(RedoLog)也称作事务日志(TransactionLog),Oracle在这些特殊的操作系统文件中记录针对数据库进行的修改操作或事务,数据库系统可以使用这些事务记录进行恢复操作。检查v$session_wait视图,我们可以从中看到很多session处于logfileswitch(checkpointincomplete)的等待;检查DBWR进程。5,回滚段的主要作用是什么,如何优化回滚段?如何增加回滚段的大小?回滚段是线状结构还是环状结构?当事务修改表中数据的时候,该数据修改前的值〔即前影像〕会存放在回滚段中,当用户回滚事务〔ROLLBACK〕时,ORACLE将会利用回滚段中的数据前影像来将修改的数据恢复到原来的值。增加回滚段可以加大回滚段所适应的表空间:alterdatabasedatafile‘..\.dbf’resizexxM6,共享池的主要作用是什么?设置共享池要注意些什么?共享池过大有什么不好?7,UPDATE较多的表,设置存储参数的时候应该注意什么?8,PGA的工作区域如何配置?9,如何进行SQL优化?10,表之间的关联方法有哪些?11、HowwouldyouedityourCRONTABtoscheduletherunningof/test/test.shtoruneveryotherdayat2PM?12、HowdoyouincreasetheOSlimitationforopenfiles(LINUXand/orSolaris)?13.ExplainhowyouwouldrestoreadatabaseusingRMANtoPointinTime?14.Whatview(s)doyouusetoassociateauser'sSQLPLUSsessionwithhiso/sprocess?15Whatarethecommandsyou'dissuetoshowtheexplainplanfor"selectfromdual"?16.InwhichdictionarytableorviewwouldyoulooktodetermineatwhichtimeasnapshotorMVIEWlastsuccessfullyrefreshed?17.HowwouldyoubestdeterminewhyyourMVIEWcouldn'tFASTREFRESH?18.HowdoespropagationdifferbetweenAdvancedReplicationandSnapshotReplication(readonly)?19.Whichdictionaryview(s)wouldyoufirstlookattounderstandorgetahigh-levelideaofagivenAdvancedReplicationenvironment?20.Databasecrashes.CorruptionisfoundscatteredamongthefilesystemneitherofyourdoingnorofOracle's.Whatdatabaserecoveryoptionsareavailable?Databaseisinarchivelogmode.DBA面试题Changedjobrecently.InterviewedtwoDBApositions.Herearesomequestions.Verybasic.1)Describetheprocedureofa"update"statement.e.gUPDATEempSETsal=40000Whereempno=12345;Whatwillhappeninternally?2)What'sdifferencebetweenSort-mergejoin,nested-loopandhashjoin?Writedownsomestatementsandcomparetheirefficiency3)What'sdifferencebetweenDifferentialbackuplevel0andlevel1?4)Describeaprocedurethatyourecoveredacrasheddatabase.Whatcommanddidyouuse?What'sdifferencebetweenrestoreandrecovery?5)Showthestrategywhenyoutuneaperformanceproblem.Giveusanexample.6)Describethedifferencebetweendataguardphysicalstandbyandlogicalstandby.7)DescribetheproceduretosetupaASMdisk8)DoyouknowRAC?TellussthaboutRAC.1)Listsometypesofsegment2)comparebitmapandB-treeindex?3)ORA-01555That'sallIcanremember.Hopeitishelpfultoall.

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

 

在高中化学学科中,期末考试是学生们检验自己学习成果的重要时刻。为了帮助广大高二化学学生备考期末考试,本文将为大家分享高二化学第一学期期末四校联考试卷的下载链接。这份试卷是由四所知名学校联合编写的,内容丰富、题型全面,适合广大高中生进行复习和自测。

这份高二化学第一学期期末四校联考试卷涵盖了本学期的核心知识点和重要考点。通过仔细研究这份试卷,学生们可以了解到自己在高中化学学科上的优势和不足之处,并针对性地进行复习和强化训练。

在这份试卷中,各种题型齐全,包括选择题、填空题、计算题和解答题等。这样的设计能够全面考察学生对各个知识点的掌握程度和解题能力。通过做这份试卷,学生们不仅可以熟悉各种题型的出题方式和解题思路,还能提高解题速度和准确度。

此外,这份试卷还附有详细的解析和参考答案。学生们可以在做完试卷后,对照答案检查自己的答题情况,并查看解析了解每道题的解题思路和关键步骤。这对于帮助学生发现自己的错误和弥补知识盲点非常有帮助。

有问题直接联系在客服

纯真的巨人
实名认证
内容提供者

该用户很懒,什么也没介绍

最新文章
    确认删除?
    客服QQ
    • 客服QQ点击这里给我发消息
    回到顶部