欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    数据库程序员面试分模拟题12.docx

    • 资源ID:7141699       资源大小:44.90KB        全文页数:15页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据库程序员面试分模拟题12.docx

    数据库程序员面试分模拟题12简答题1. Oracle中锁的兼容性是什么样的?正确答案:常见SQ1.语句的锁兼容情况见卜.表。SQ1.语句行级锁模式是否允许锁操作?RS(江表级锁模式翳RXS(2)SRX(5)X(6)SE1.ECT.FROMtable.NU1.1.YYYYYINSERTINTOtable.XRXYYNNNINSERT*+APPEND*INTOvXNNNNNtable.UPDATEtable.XRXY*Y*NNNDE1.ETEFROMtable.XRX*NNNSE1.ECT.FROMtableFORRX(OracIeUPDATE(OF).9i是RS)Y*Y*Y*Y*N1.OCKTAB1.EtableINROWRSYYYYNSHAREMODE1.OCKTAB1.EtableINDCVVVVySHAREUPDATEMODE011I11.OCKTAB1.EtableINROWpVVVMVEXC1.USIVEMODE11AN1.OCKTAB1.EtableINSYNYNNSHAREMODE1.OCKTAB1.EtableINSHAREROWSRXYNNNNEXC1.USIVEMODE1.OCKTAB1.EtableINMNKEXC1.USIVEMODE1、BN注:Y*表示当不与其他事务的行级锁冲突时才允许,否则将产生等待。锁之间的兼容模式见下表。Held/GetNull(I)RS(2)RX(3)S(4)SSX(5)X(6)0、】fJJJJJJ2 RS3 RX4 S5 SSX6 X考点锁2. tnsnanes.Ora文件的作用是什么?正确答案:这个文件类似于1.inux系统的hosts文件,提供tnsname到主机名或者IP的对应关系。只有当sqlnet.Ora中有类似“NAMES.DIRECTORYPATH=(TNSNAMES)”的配置,客户端解析连接字符串时,数据库才会尝试使用这个文件。下面给出一个配置的例子:ORC1.=(DESCRIPTION=(ADDRESS=(PROToCO1.=TCP)(HoST=Ihr)(PoRT=I521)(CONNECT_DATA=(Server=Dedicated)(SERVICE-NME=orcl)其中,每个部分的解梆如卜N1)PROTOCO1.:客户端与服务器端通信的协议,一般为TCP,该内容一般不用改。2)HOST:数据库所在的机器的主机名或IP地址。不管用主机名还是IP地址,在客户端一定要用ping命令ping通数据库所在的机器,否则需要在hosts文件中加入数据库所在的机器的主机名和IP地址的时应关系。3)PORT:数据库监听器的端口,可以查看服务器端的IiStener.ora文件或在数据库服务器中通过ISnrCtlStatUSlistenername命令来查看。一般为1521端口。4)SERVICENAME:在数据库中使用“SHOWPARAMETERSERVICENAME"命令查看,一般情况下和DBNAME相同。考点网络什么是分区索引?正确答案:分区索.器是简单地把一个索引分成多个片断。通过把一个索引分成多个片断,可以访问更小的片断(也更快),并且可以把这些片断分别存放在不同的磁盘上,从而避免I/O问题。B-Tree和位图索引都可以被分区,而HASH索引不可以被分区。可以有好几种分区方法:表被分区而索引未被分区;表未被分区而索引被分区;表和索引都被分区。不管采用哪种方法,都必须使用基于成本的优化器。有两种类型的分区索引:本地分区索引和全局分区索引。每个类型都有两个子类型,有前缀索引和无前缀索引。表各列上的索引可以有各种类型索引的组合。如果使用了位图索引,那么就必须是本地索引。索引分区最主要的原因是可以减少所需读取的索引的大小,另外把分区放在不同的表空间中可以提高分区的可用性和可养性。在使用分区后的表和索引时,OraCle还支持并行查询和并行DV1.,这样就可以同时执行多个进程,从而加快处理.SQ1.语句。考点分类4. 区块链和云计算云存储有什么关系?正确答案:云计算通常定义为通过互联网来提供动态易扩展且经常是虚拟化的资源,但是提供云计算平台的往往是一个中心化机构。而区块链组成的网络一般是没有特定的机构,所以区块链更接近分布式计算系统的定义,属于分布式计算的一种。考点NeiYSQ1.和区块链5. 在登记日志文件时为什么必须先写日志文件,后写数据库?正确答案:把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。如果先写了数据库修改,而在运行记录中没有登记这个修改,那么以后就无法恢复这个修改了;如果先写日志,但没有修改数据库,那么在恢复时只不过是多执行一次UndO操作,并不会影响数据库的正确性。所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。考点数据库系统的组成与结构6. 在OraCIe中,如何查询视图的所有列?正确答案:使用DBAjAB_COUJMNS视图可以查询到所有的表、视图和簇表的列的详细内容,但是这个视图不包括系统产生的隐藏列和不可见列,而视图DBAJ'ABCO1.s可以杳询到系统产生的隐藏列和不可见列。考点视图7. 请回答以下关于进程、线程以及程序的有关问题:1)进程和线程的区别是什么?2)多线程程序有什么优点与缺点?3)多进程程序有什么优点与缺点?与多线程相比,有什么区别?正确答案:1)进程和线程的关系如下:一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。资源分配给进程,同-进程的所有线程共享该进程的资源。处理机分给线程,即真正在处理机上运行的是线程。线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。线程指的是进程内的一个执行单元,也是进程内的可调度实体。进程和线程的相同点如下:二者都具有ID、一组寄存器、状态、优先级以及所要遵循的调度策略.每个进程都有一个进程控制块,线程也拥有一个线程控制块。线程和子进程共享父进程中的资源:线程和子进程独立于它们的父进程,竞争使用处理器资源:线程和子进程的创建者可以在线程和子进程上实行某些控制,例如,创建者可以取消、挂起、继续和修改线程和子进程的优先级;线程和子进程可以改变其属性并创建新的资源。进程和线程的不同点如下:线程是进程的部分,个没有线程的进程是可以被看作单线程的,如果一个进程内拥有多个线程,进程的执行过程不是一条线(线程)的,而是多条线(线程)共同完成的。启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而旦,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间。系统在运行的时候会为每个进程分配不同的内存区域,但是不会为线程分配内存(线程所使用的资源是它所属的进程的资源),同一个进程内的线程可以共享进程的资源。对不同进程来说,它们具有独立的数据空间,要进行数据的传递只能通过通信的方式进行,这种方式不仅费时,而且很不方便。而一个线程的数据可以直接为其他线程所用,这不仅快捷,而且方便。与进程的控制表PCB相似,线程也有自己的控制表TCB,但是TCB中所保存的线程状态比PCB表中少多了。进程是系统所有资源分配时候的一个基本单位,拥有一个完整的虚拟空间地址,并不依赖线程而独立存在。2)多线程的优点如下:无须跨进程边界;程序逻辑和控制方式简单:所有线程可以直接共享内存和变量等;线程方式消耗的总资源比进程方式少。多线程的缺点如下:每个线程与主程序共用地址空间,受限于2GB地址空间;线程之间的同步和加锁控制比较麻烦;一个线程的崩溃可能影响到整个程序的稳定性:到达一定的线程数程度后,即使再增加CPU也无法提高性能,例如NindoWSServer2003,大约1500个线程数就快到极限了(线程堆栈设定为IMB),如果设定线程堆栈为2MB,还达不到1500个线程总数:线程能够提高的总性能有限,而且线程多了之后,线程本身的调度也很烦琐,需要消耗较多的CP1.3)多进程的优点如下:每个进程互相独立,不影响主程序的稳定性,了进程崩溃也没关系;通过增加CPU,就可以容易扩充性能;可以尽量减少线程加锁/解锁的影响,即使线程运行的模块算法效率低,也可极大提高性能;每个进程都有2GB地址空间和相关资源,总体能够达到的性能上限非常大。多线程的缺点如下:逻辑控制复杂,需要和主程序交互;需要跨进程边界,如果有大数据量传送,就不太适用,适合于小数据量传送、密集运算、多进程调度开销比较大:最好是多进程和多线程结合,即根据实际的需要,每个CPU开启一个子进程,这个子进程开启多线程可以为若干同类型的数据进行处理.当然,也可以利用多线程+多CPU+轮询方式来解决问题。方法和手段是多样的,关键是Fl己看起来实现方便又能够满足要求,代价也合适。8. 什么是反向健索引(ReVerSeKeyIndexes)?正确答案:反向键索引也称为反转索引,是一种B-TreC索引,它在物理上反转每个索引键的字节,但保持列顺序不变。例如,如果索引键是20,并且在一个标准的B-Tree索引中此键被存为十六进制的两个字节C1、15,那么反向键索引会将其存为15、CUSYSorciasm>SE1.ECTDUMP(20,16')FROMDUA1.;D1.MP(2016,)Typ=21.en=2:cl,15反向键索引解决了在B-Tree索引右侧的叶块争用问题。在OraCIeRAC数据库中的多个实例重复不断地修改同一数据块时,这个问题尤为严重。在一个反向键索引中,刻字节顺序反转,会将插入分散到索引中的所有叶块。例如键20和21,本来在一个标准键索引中会相邻,现在存储在相隔很远的独立的块中。这样,顺序插入产生的I/O被更均匀地分布了。使用反向键索引的最大的优点莫过于降低索引叶子块的争用,减少热点块,提高系统性能。由于反向键索引自身的特点,如果系统中经常使用范围扫描进行读取数据(例如在NHERE子句中使用“BETWEENAND”语句或比较运算符”<=”等),那么反向键索引将不会被使用,因为此时会选择全表扫描,反而会降低系统的性能。只有对反向键索引列进行“=”操作时,其反向键索引才会使用。创建索引时使用REVERSE关键字,如卜NCreateindexrev_index_lhronxt_revi_lhr(object_id)reverse;A1.TERINDEXREVJNDEXREBUIDNOREVERSE:A1.TERINDEXNME-INXREBUI1.DON1.INENOREVERSE;A1.TERINDEXID_INXREBUI1.DREVERSEON1.INE:A1.TERINDEXID_INXREBUI1.DON1.INEREVERSE;考点分类9. 在创建索引时有哪些原则?正确答案:索引的使用原则如下:1)在大表上建立索引才有意义。2)在WHERE子句或者连接条件经常引用的列上建立索引。3)索引的层次不要超过4层。4)如果某属性常作为最大值和最小值等聚集函数的参数,那么考虑为该屈性建立索引。5)表的主键、外健必须有索引。6)创建了主键和唯哟束后会自动创建唯一索引。7)经常与其他表进行连接的表,在连接字段上应该建立索引。8)经常出现在WHERE子句中的字段,特别是大表的字段,应该建立索引。9)要索引的列经常被查询,并只返回表中的行的总数的一小部分。10)对于那些查询中很少涉及的列、重第值比较多的列尽量不要建立索引。ID经常出现在关键字ORDERBY、GROUPBY、DISTINCT后面的字段,最好建立索引。12)索引应该建在选择性高的字段上。13)索引应该建在小字段上,对于大的文本字段甚至超长字段,不适合建索引。对于定义为C1.OB、TEXT、IMAGE和BlT的数据类型的列不适合建立索引。14)复合索引的建立需要进行仔细分析。正确选择复合索引中的前导列字段,一般是选择性较好的字段。15)如果单字段杳询很少甚至没有,那么可以建立熨合索引;否则考虑单字段索引。16)如果第合索引中包含的字段经常单独出现在WHERE子句中,那么分解为多个单字段索引。17)如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少第合的字段。18)如果既有单字段索引,又有这几个字段上的复合索引,那么一般可以删除复合索引。19)频繁进行DV1.操作的表,不要建立太多的索引。20)删除无用的索引,避免对执行计划造成负面影响。索引有助于提高检索性能,但过多或不当的索引也会导致系统低效。不要认为索引可以解决一切性能问题,否则就大错特错/°因为用户在表中每加进一个索引,数据库就要做更多的工作。过多的索引甚至会导致索引碎片。要建立一个,适当,的索引体系,特别是对聚合索引的创建,更应精益求精,这样才能使数据库得到高性能的发挥。所以,提高查询效率是以消耗一定的系统资源为代价的,索引不能盲目地建立,这是考验一个DBA是否优秀的一个很重要的指标。考点基本概念10. 普通表转换为分区表有哪些办法?正确答案:将普通表转换成分区表有以下4种方法:1)导出/导入方法(EXPOrt/ImportMethod)。2)子查询插入方法(InsertwithaSubqueryMethod)(.3)分区交换方法(PartitiOnExchangeMethod)04)在线重定义方法(DBMS.REDEFINITIONMethod)。关于这几种方法的优缺点及适用情景见下表。方法主要过程优点缺点适用情况导出/导入方法采用逻辑导出/导入,首先在源库建立整个实施过程中,该方法适用分区表,然后将数据导出,导入新建的分区表即可操作简单目标表将不能进行DM1.操作于业务量较小的表子查询采用CTAS的方方法简单易用,由于对于数据的一致性该方法适用插入方式采用DD1.方面需要于修改法创建分区表,语句,不会产生UndO做额外的考虑。在不频繁的然后执日志,且执行CREATE表,在闲时行RENAME操作只会产生少量Redo口TB1.E语句和进行操作,即志,效率RENAME表的数据可相对较高,而且建表T_NEWTOT(T_NEW量不宜太大完成后数据击中间已经分布到各个分区表)语句时,T表不中了能进行DM1.操作。如果要保证一致性,那么需要在执行完语句后对数据进行检查,而这个代价是比较大的。另外,在执行RENAME语句时,其他会话将不能访问T表只对数据字典中分区分区交换方法执行分区交换命令rtA1.TERTAB1.ET_NEWEXCHANGEPARTITIONTlWITHTAB1.ET;”交换普通表和分区表的某个特定分区。和表的定义进行了修改,没有数据的修改或复制,效率於高。如果对数据在分区中的分布没有进一步要求,那么实现比较简单。在执行完RENAME操作后,可以检查T_O1.D(T_O1.D为中间表)中是否存在数据,如果存在,那么直接将这些数据插入T中,可以保证对T存在一致性问题,在交换分区之后到RENAMET_NEWTOT(T_NEW为中间表)之前查询、更新和删除会出现错误或访问不到数据。如果耍求数据分布到多个分区中,那么需要进行分区的SP1.lT操作,会增加操作的复杂度,效率也会降低该方法适用于包含大数据量的表转到分区表中的一个分区的操作,应尽量在系统空闲时进行操作使用DBMS_RED-EFINrnON包进行在线转换插入的操作不会丢失保证数据的一致性,在大部分时间内,表T都可以正常执行DM1.操作,只在切换的瞬间锁表,具有很高的可用在线重定义方法性。这种方法具有很强的灵活性,对各利,不同的需求都能满足。而且,可以在切换前进行相应的授权并建立各种约束,可以做到切换完成后不再需要任何额外的管理操作在实现上比其他几种方法略显复杂该方法适用于7*24系统环境考点分区表11. 什么是活锁?什么是死锁?正确答案:如果事务门封锁了数据R,事务T2乂请求封锁R,于是T2等待。T3也请求封锁R,当Tl释放了R上的封锁之后系统首先批准了T2的清求,T3仍然等待。然后Tl乂请求封锁R,当T2释放了R上的封锁之后系统乂批准了T3的请求Tl有可能永远等待,这就是活锁的情形。活锁的含义是该等待事务等待时间太长,似乎被锁住了,实际上可能被激活。如果事务Tl封锁了数据Rl,T2封锁了数据R2,然后Tl又请求封锁R2,因T2已封锁了R2,于是门等待T2释放。R2上的锁。接着T2又申请封锁Rl,因Tl已封锁了Rl,T2也只能等待Tl驿放RI上的锁。这样就出现了Tl在等待T2,而T2又在等待门的局面,Tl和T2两个事务永远不能结束,形成死锁。考点基本概念12. SCN与时间戳如何相互转换?正确答案:一个SCN.总是发生在某一个特定的时刻,只不过由于粒度的不一样,通常会存在多个SeN对应同一个时间戳的情况。OracleIOg提供了两个新函数用于SCN和时间戳进行相互转换,这两个函数分别是SCN_TOTIMESTAMP和TIMESTAMP_TO_SCN,通过对SCN和时间戳进行转换,极大方便了OraClC的很多备份和恢复过模。DSCNTOTIMESTAMP(sennumber):将SCN转换成时间戳。2) TIMESTAMPTOSCN(timestamp):将时间戳转换成SCK通过以上这两个函数,最终OraCIe将SCN和时间的关系建立起来。在OracleIOg之前,是没有办法通过函数转换得到SCN和时间的对应关系的,般可以通过1.OgMiner分析口志获得。但是这两种函数转换要依赖于数据库内部衣SMON_SCN_T1ME,对于久远的SCN则不能转换。考点RMAN13. 直方图(HiStogrHm)的意义是什么?直方图的适用场合有哪些?正确答案:在Oracle数据库中,CBO会默认认为目标列的数据在其最小值(1.OW_VA1.UE)和最大值(HlGHVA1.fE)之间是均匀分布的,并且会按照这个均匀分布原则来计算对目标列施加WHERE查询条件后的可选择率以及结果集的Cardinality,进而据此来计算成本值并选择执行计划。但目标列的数据是均匀分布这个原则并不总是正确的,在实际的系统中,可以很容易地发现有一些目标列的数据分布是不均匀的,甚至是极度倾斜、分布极度不均衡的。对这样的列如果还按照均匀分布的原则去计算可选择率与CardinaIity,并据此来计算成本、选择执行计划,那么CBO所选择的执行计划就可能是不合理的,甚至是错误的,所以此时应该收集列的直方图。直方图是一种列的特殊的统计信息,主要用来描述列上的数据分布情况。当数据分布倾斜时,直方图可以有效地提升CardinaIiIy评估的准确度。构造直方图最主要的原因就是帮助优化器在表中数据严重偏斜时做出更好的规划。例如,表中的某个列上,其中的某个值占据了数据行的80%(数据分布倾斜),相关的索引就可能无法帮助减少满足查询所需的I/O数量。创建直方图可以让基于成本的优化器知道何时使用索引才最合适,或何时应该根据WHERE子句中的值返回表中80%的记录。如果对目标列收集了直方图,那么意味着CBO将不再认为该目标列上的数据是均匀分布的了,CBO就会用该目标列上的宜方图统计信息来计算对该列施加查询条件后的可选择率和返回结果集的Cardinality,进而据此计算成本并选择相应的执行计划。通常情况下在以下场合中建议使用直方图:1)当WHERE子句引用了列值分布存在明显偏差的列时:当这种偏差相当明显时,以至于WHERE子句中的值将会使优化器选择不同的执行计划,这时应该使用直方图来帮助优化器来修正执行路径。(注意:若查询不引用该列,则在该列上创建直方图没有意义。)2)当列值导致不正确的判断时,这种情况通常会发生在多表连接时。例如,假设有一个五张表的连接操作,其目标SQ1.最终结果集只有10行。Oracle将会以一种使第一个连接的结果集(集合基数)尽可能小的方式将表连接起来。通过在中间结果集中携带更少的负载,查询将会运行得更快。为了使中间结果最小化,优化器尝试在SQ1.执行的分析阶段评估每个结果集的集合基数,在偏差的列上拥有直方图将会极大地帮助优化器做出正确的决策。如优化器对中间结果集的大小做出不正确的判断,则它可能会选择一种未达到最优化的表连接方法。因此向该列添加宜方图经常会向优化器提供使用最佳连接方法所需的信息。i落点统计信息14. 时间序列数据库有哪些代表数据库?正确答案:因为时间序列数据自身的特点,传统的数据库有些显得力不从心,所以近年来涌现了很多优秀的时间序列数据库,例如InfIUXDB、RRDtookGraphite、OpenTSDBxDruid.PromelheUS和Kdb+等,其中Kdb+也是关系型数据库。TSDB其实在自动化、石油、化工等其他行业早己经普及使用。对于大部分DBA而言,TSDB使用在监控上,将监控数据存放到TSDB中,便于分析和报警。考点时间序列数据库15. 如何查询某服务是静态注册还是动态注册?正确答案:可以使用命令ISnrCtlStatUS来查看某服务是静态注册还是动态注册。实例状态为UNKM)WN时表明此服务是静态注册。这时监听器用来表明它不知道关于该实例的任何信息,只有当客户发出连接请求时,它才检查该实例是否存在。动态注册的数据库通过状态信息中的状态READY或状态B1.OCKED(动态监听在NoMOUNT状态下为B1.OCKED)来指明。不管何时关闭数据库,动态注册的数据库都会动态地从监听器注销,而与之相关的信息将从状态列表中消失。所以,不管数据库是在运行还是已经关闭,监听器总是知道它的状态。该信息将被用于连接请求的回退和负载平衡。考点网络16. Oracle的异常可以分为哪几类?正确答案:OraCie将异常分为预定义异常、非预定义异常和自定义异常三种。1 .预定义异常(PredCfinCd)当P1./SQ1.应用程序违反了Oracle规定的限制时,就会隐含地触发一个内部异常,这就是预定义异常。预定义异常用于处理常见的OraeIC错误,对这种异常情况的处理,无须在程序中定义,由OraClC自动将其触发。它们全部放在P1./SQ1.自带的标准包中,这样程序员就无须再次定义了。预定义异常大约有20多个,下表是一些常见的预定义异常。错误号异常错误信息名称说明OKA-01403NODATAFOUNDSE1.ECTINTO没有找到数据OKA-01422TOOJfANY_ROWSSE1.ECTINTo返回多行OKA-program_error内部错误,需重新安装数据字典视图和06501P1./SQ1.包OKA-06511CURSOR_A1.READY一OPE试图打开一个已存在的游标ORA-06530ACCESS_INTO_NU1.1.试图为NU1.1.对象的属性赋值ORA-01012NOT_1.OGGED_ON没有连接到OracleORA-010011NVA1.1D_CUKSOR试图使用一个无效的游标ORA-00061transaction_backed_out由于发生死锁事务被撤销ORA-00051T1MEOUT_ON_RESOURCE在等待资源时发生超时ORA00001DUP_VA1._ON_1NDEX试图破坏一个唯一性限制ORA-010171.oG1?1.DEMED无效的用户名/口令ORA-01476ZERo.DIVIDE试图被零除ORA-01722INVA1.lD_NUMBER转换一个数字失败ORA-06500STORAGE_ERROR内存不够或内存被破坏触发的内部错误ORA-06502VA1.UE_ERROR赋值操作,变量长度不足,触发该异常ORA-Rowtypejiismatcii宿主游标变量与P1./SQ1.变量有不兼容行类06504ORA-06531CO1.1.ECT1ON_1S_NU1.1.试图给没有初始化的嵌套表变量或者VARRY变量赋值ORA-06532SUBSCRIPj)UTSlDEJJvlT对嵌套或VARRAY索引使用了负数ORA-06533SUBSCRIPT_BEY0ND_C0UNT对嵌套或VRRY索引的引用大于集合中元素的个数2.非预定义异常(NOnPredefined)非预定义异常用于处理预定义异常不能处理的异常,即其他标准的Oracle错误。使用预定义异常只能处理系统预定义的20多个OraCIe错误,而当使用P1./SQ1.开发应用程序时,可能会遇到其他的一些Oraele错误。例如,在P1./SQ1.块中执行DM1.语句时违反了约束规定等。在这样的情况下,就可以使用非预定义异常来处理。Oracle提供/2个函数SQ1.CODE和SQ1.ERRM用于返回错误信息。1) SQ1.CODE:返回错误代码。2) SQ1.ERRM:返回与错误代码关联的消息。这样就可以在错误日志表中记录程序在执行过程中发生的错误信息了。3) 自定义异常(USeJdefine)自定义异常用于处施与Oracle错误无关的其他情况。对这种异常情况的处理,需要用户在程序中定义,然后显式地在程序中将其触发。预定义异常和自定义异常都是与Oracle错误相关的,并且出现的Oracle错误会隐含地触发相应的异常:而自定义异常与OraCIe错误没有任何关联,它是由开发人员为特定情况所定义的异常。当与一个异常相关的错误出现时,就会隐含触发该异常。用户定义异常是通过显式使用RAISE语句来触发。当触发一个异常时,控制程序就转到异常块部分,执行错误处理代码。考点程序处理17.集群安装过程中的$GRlD_HOVE/rool.Sh脚本的作用是什么?正确答案:该脚本主要执行CRS的配置、格式化OCR磁盘、更新etcinittab文件、启动ocssd进程、新建etcoracleOer.IoC文件等,是RAC安装过程中非常重要的一步。若后期OCR、O1.R或表决磁盘出现问题都可以通过重新执行root.Sh脚本来修复集群的配置信息。重新执行root,sh脚木的过程如下:$GRID_HOME/crs/install/rooters,p1-deconfig-force-verbose卸载配置信菽一SGRIDJ10MEcrsinstal1/rootcrs.pl-deconfig-force-verbose-lastnode-kccpdg最后一个节点可以保留磁盘组ddif=devzeroof=devrhdiskNbs=1024kcount=1024清理磁盘头$DRIDjlOVE/root,sh-重新执行另外,deconfig执行完后可以考虑删除以下文件:Is-1SGRIDB.ASE/CIusterwareZckptGridUA*fredSGRlDJIOMEZgpnp/*-typeffindSGRIDJOIFgpnp*-typef-execrm-rf:集群的配置信息包含在文件$GRIDHOME/crs/instal1/crsconfig_params中,root,sh脚本根据该文件的配置信底设置OCR的内容。在执行root,sh脚本的过程中产生的日志在目丧$6心。0犯/。£810011085/(:1节(:011门/下。考点RAC18. 如何查看VySQ1.的位数?正确答案:有如下几种办法:Dmysql-V2)nysql>showvariableslike,%version%,;3) whichmysqlxargsfile(1.inux/UniX系统)4)echoSTATUSmysql-uroot-ppasswordIgrepVer19. 分布式数据库有哪些优点?正确答案:分布式数据库的优点如下:1)增强了可用性。当某个数据库服务器出现故障后,可以继续使用分布式数据库中其他数据库提供的服务。2)数据的分布访问。企业数据可以分布于若干城市,分析时可能需要访问不同场地的数据,但通常在访问模式中得到数据存储的局部性(例如银行经理通常是查询本地支行的顾客账户),这种局部性可用来分布数据。3)分布数据的分析。企业需要分析所有可用的数据,即使这些数据存储在不同场地、不同的数据库系统中。考点分布式数据库与并行数据库20. 游标分为哪几类?父游标和f游标的区别是什么?正确答案:游标(CUrSOr)是OraCle数据库中SQ1.解析和执行的载体,它可以分为共享游标(SharedCUrSor)和会话游标(SeSSionCursor)0共享游标是指缓存在库缓存(1.ibraryCaChe)里的一种库缓存对象,其实就是指缓存在库缓存里的SQ1.语句和匿名P1./SQ1.块所对应的库缓存对象。共享游标是Oracle缓存在库缓存中的几十种库缓存对象之一,它所对应的库缓存对象句柄的Namespace属性的值是CRSR(也就是CUrSOr的缩写)。共享游标会存储目标SQ1.的SQ1.文本、解析树、该SQ1.所涉及的对象定义、该SQ1.所使用的绑定变量类型和长度,以及该SQ1.的执行计划等信息。共享游标可以细分为父游标(ParentCUrSor)和子游标(ChildCursor),可以通过视图V$SQ1.AREA来查看当前缓存在库缓存(1.ibraryCaChe)中的父游标,而通过'$SQ1.来查看缓存在库缓存中的子游标。OraCIe设计这种嵌套的ParentCursor和ChiIdCursor并存的结构是为了能尽量减少对应的HaShBucket中库缓存对象句柄链表的长度。Oracle中游标的分类如下图所示。回父游标和上游标的对比见下表。父游标查询视图'$SQ1.AREA子游标V$SQ1.存储内容库缓存对象父游标存储SQ1.文本(库缓存对象句柄的属性NAME中);父游标的heap0中存储着子游标的句柄地址子游标存储解析树(ParSeTlree)及执行计划(EXeCUtionElan,实际上存储在库缓存对象句柄的heap6中),以及该SQ1.所使用的绑定变量的类型和长度句柄的属性NAME存储存储SQ1.文本内容D父游标和子游标的结构是一样的,它们都是以库缓存对象句柄的方式缓存布库缓存中,NalneSPaCe属性的值均为CRSR联系2)由于子游标所对应的库缓存对象句柄的AME属性值为空,所以,只能通过父游标才能找到相应的子游标3)任意一个经过解析的目标SQ1.一定会同时对应两个共享游标,个是父游标,另一个则是子游标考点游标

    注意事项

    本文(数据库程序员面试分模拟题12.docx)为本站会员(李司机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开