欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据库程序员面试分类真题14.docx

    • 资源ID:1342930       资源大小:90.51KB        全文页数:24页
    • 资源格式: DOCX        下载积分:7金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要7金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    数据库程序员面试分类真题14.docx

    数据库程序员面试分类真题14倚答题1. SQ1.语句的执行过程有哪些?正确答案:Oracle数据库里SQ1.语句的执行过程可以如卜图所示。在上图中,可以看到SQ1.语句的执行过程大致分为以卜几个步骤:1)当用户提交待执行的目标SQ1.后,Oracle首先会对目标SQ1.进行解析。在这个过程中,OraCIe会先执行对目标SQ1.的语法、语义和权限的检查:语法检查(SyntaXCheCk)是检查目标SQ1.的拼写是否正确,例如,错将关键字“FRO字写成“FORM”,将"SE1.ECT”写成“SE1.字”等。语义检查(SemantiCCheCk)是检查SQ1.语句中的访问对象是否存在及该用户是否具备相应的权限。2)如果目标SQ1.不能通过上述语法、语义和权限的检查,那么该目标SQ1.将解析失败。如果目标SQ1.能通过上述检杳,那么接下来OraCIe就会去SGA的共享池中的库缓存中查找是否存在匹配的共享游标。如果找到了匹配的共享游标,那么Oracle就会把存储于该共享游标中的解析树和执行计划直接拿过来重用,这相当于跳过了后续的“查询转换”和“查询优化”这两个步骤,直接进入“实际执行”阶段。3)如果找不到匹配的共享游标,就意味着此时没有可以被重用的解析树和执行计划,那么接下来整个执行过程就进入查询转换这一步。在查询转换过程中,OraCIe会根据一些规则来决定是否对目标SQ1.执行查询转换,这些规则在OraCIe不同的版本里不尽相同。在OraCle9i中,查询转换是独立于优化器的,它与优化器的类型无关,但是从OraeleIog开始,Oracle会对某些类型的查询转换(比如子查询展开、复杂视图合并等)分别计算经过查询转换后的等价改写SQ1.的成本和原始SQ1.的成本。只有当等价改写后SQ1.的成本值小于未经过查询转换的原始SQ1.的成本值时,OraCIe才会对目标SQ1.执行查询转换。在执行完查询转换后,原目标SQ1.可能就被OraClC改写了,当然也有可能没有改写O4)接下来,OraCIe就正式进入了查询优化这个步骤。在这个步骤里,Oracle会根据不同的优化器类型(CBo或RBO)采用不同的判断原则,从执行完查询转换后得到的目标SQ1.的诸多可能的执行路径中选择一条效率最高的路径来作为其执行计划,即查询优化的输入就是执行完查询转换后得到的等价改写SQ1.,其输出就是该目标SQ1.的最终执行计划。5)在得到了目标SQ1.的执行计划后,接下来OraeIe就会根据执行计划去实际执行该SQ1.,并将执行结果返回给用户。考点游标2. 绑定变量的适用场合有哪些?正确答案:对于绑定变量应该根据系统的类型来决定是否使用绑定变量,具体如下:1)在高并发的O1.TP系统中,SQ1.语句肃宜执行频度高,但处理的数据量较少,结果集也相对较小,尤其是使用表上的索引来缩小中间结果集,其解析时间通常会接近或高于执行时间,因此,在该场合一定要使用绑定变量,并且最好是使用批量绑定,因为这样可以有效降低系统硬解析的数量,这也是O1.TP类型的系统在数据库端具备良好的性能和可扩展性的前提条件。2)在O1.AP/DSS系统中,SQ1.语句执行次数相对较少,但返回的数据量较大,其SQ1.语句执行时间远高于其解析时间,硬解析对系统性能的影响是微乎其微的,因此,使用绑定变量对于总的执行时间影响不大,对系统性能的提升也非常有限。3)对于O1.AP和O1.TP混合型的应用系统,如果有循环,不管这个循环是在前台代码还是在后台P1./SQ1.代码中,循环内部的SQ1.语句一定要使用绑定变量,并且最好是使用批量绑定;至于循环外部的SQ1.语句,可以不使用绑定变量O°需要注意的是,对于实际的数据库对象,例如表、视图等,不能使用绑定变量替换,只能替换字面量。如果对象名是在运行时生成的,那么需要对其用字符串拼接,同时,SQ1.只会匹配已经在共享池中存在且相同的对象名。考点绑定变量3. 什么是绑定变量娅探?正确答窠:目标SQ1.若不使用绑定变量,则当具体输入值一旦发生了变化,目标SQ1.的SQ1.文本就会随之发生变化,这样OraCIe就能很容易地计算出对应Selectivity和CardinaIily的值,进而据此来选择执行计划。但对于使用了绑定变量的目标SQ1.而言,情况就完全不一样了,因为现在无论对应绑定变量的具体输入值是什么,目标SQ1.的SQ1.文本都是一模一样的。对于使用了绑定变量的目标SQ1.而言,Oracle可以选择如下两种方法来决定其执行计划:D使用绑定变量窥探(BindPeeking),2)如果不使用绑定变量窥探,那么对于那些可选择率可能会随着具体输入值的不同而不同的谓词条件使用默认的可选择率(例如5蛤。绑定变量窥探是在OraCIe9i中引入的,是否启用绑定变量窥探受隐含参数“OPTIMPEEKUSERBINDS"的控制,该参数的默认值是TRUE,表示在Oracle9i及其后续的版本中,默认启用绑定变量婉探。考点绑定变量4. 如何得到已执行的目标SQ1.中的绑定变量的值?正确答窠:当Oracle解析和执行含有绑定变量的目标SQ1.时,如果满足如下两个条件之一,那么该SQ1.中的绑定变量的具体输入值就会被Oracle捕获:1)当含有绑定变量的目标SQ1.以硬解析的方式被执行时。2)当含有绑定变量的目标SQ1.以软解析或软软解析的方式重熨执行时,OraCle在默认情况卜至少得间隔15nin才会捕获一次。这个15nin受隐含参数“CURSORBINDCAPTUREINTERVA1."控制,默认值为900s,即15min0需要注意的是,Oracle只会捕获那些位于目标SQ1.的WHERE条件中的绑定变量的具体输入值,而对于那些使用了绑定变量的INSERT语句,不管该INSERT语句是否是以硬解析的方式执行,Oracle始终不会捕获INSEKT语句的H1.UES了句中对应绑定变量的具体输入值。查询视图V$SQ1._B1ND_CAPTIRE可以得到已执行目标SQ1.中绑定变量的具体输入值。如果V$SQjBIND/APTURE中查不到,那么有可能对应的SharedCurrsor己经从SharedPool中被清除了,这时候可以尝试从AWR相关的数据字典表DBA_HIST_SQ1.STAT或DBA_HIST_SQ1.BIND中查询。考点而定变量5. 什么是游标共享?正确答案:游标共享(CUrSOrSharing)是指共享游标(SharedCUrSOr)之间的共享,游标共享可以实现重用存储在子游标(ChildCUrSor)中的解析树和执行计划而不用从头开始做硬解析,从而提高系统性能。特别是对于同一类型的目标SQ1.更应该实现游标共享,而使用绑定变量就可以实现游标共享。游标共享分为常规游标共享和自适应游标共享。考点绑定变量6. 获取执行计划有哪几种方法?正确答案:对于这几种获取执行冲划的方法有如下结论:1)若目标SQ1.需要执行很长时间才能返回结果,则推荐使用EXP1.AlNP1.ANFOR来获取执行计划。2)若要查询目标SQ1.的所有子游标的执行计划,则推荐使用DBMSXP1.N.DISPUYCURSOR(,&SQIJD*,NU1.1.,ADVANCEDA1.1.STATS')或awrsqrpt.sql来获取执行计划。3)若要分析SQ1.语句的内部调用详情,则推荐使用10046事件。4)若想确保看到真实的执行计划,则不能使用EXP1.ANP1.ANFOR和SETutotrcetrceonlyexplain。5)若想获取到表的访问次数,则推荐/*+GATHER_P1.AN_STATISTICS*/06)若数据库版本大于10g,则对执行时间较长的SQ1.语句推荐使用SQ1.实时监控特性查看html报告。考点执行计划7. 如何得到真实的执行计划?正确答案:在Oracle数据库中判断得到的执行计划是否准确,就是看目标SQ1.是否被真正执行过,真正执行过的SQ1.所对应的执行计划就是准确的,反之则有可能不准,因此,通过10046事件及如下的几种方式得到的执行计划必最准确的,而从其他方式获取到的执行计划都有可能不准确。SE1.ECT*1ROMTAB1.E(DBMS_XP1.AN.DlSP1.ACURSOR(NU1.1.,NU1.1.,ADVANCEDA1.1.STATS,):SE1.ECT*1ROMTAB1.E(DBMS_XP1.AN.DISP1.AY_CURSOR(,sql.idhash-value,CHI1.D_CURSOR_NUMBER,'ADVANC印A1.1.STTS,);SE1.ECT*FROMTAB1.E(DBMS-XP1.AN.DISP1.AY.AWR(,sql.id,);这里需要注意的是,虽然SQI.*Plus的AUTOTRACE功能有部分是真实执行了SQ1.语句的(例如所有DM1.语句),但是由于该命令所显示的执行计划来源于调用EKP1.AlNP1.AN命令,所以,其得到的执行计划依然可能不准确(特别是在使用了绑定变量的情况卜考点执行计划8. 如何固定SQ1.执行计划?正确答案:在实际项目中,通常在开发环境下,一些SQ1.执行没有任何功能问题,而当生产环境或生产环境的数据量发生较大的变化时,其SQ1.的执行效率非常低。此时如果更改SQ1.,那么可能需要重新修改源程序以及重新编译程序。如果修改源程序的成本比较大,那么可以使用一些方法在不改变源应用程序的情况下更改特定SQ1.的执行计划并固定下来。因为在SQ1.语句的执行计划发生更改时,可能存在性能风险。SQ1.计划发生更改的原因有很多,如优化程序版本、优化程序统计信息、优化程序参数、方案定义、系统设计和SQ1.概要文件创建等。有4种方式可以固定和控制执行计划,分别是使用HinI(提示)、OUT1.INE(存储概要)、SQ1.PROFl1.E(SQ1.概要文件)和SPM(SQ1.PlanManagemem,SQ1.计划管理)O考点执行计划9. 什么是半连接(SemiJoin)?正确答案:半连接(SemiJOin)是一种特殊的连接类型,当执行了查询展开时,OraCIe经常会把那些外部WHERE条件为EXISTS.IN或ANY的;查询转换为对应的半连接。半连接分为嵌套循环半连接(Hinl为N1._SJ)、排序合并半连接(Hint为MERGE一SJ)和哈希半连接(Hint为HASl1.SJ),不过在新版本数据库里,都倾向于使用喑希半连接。哈希半连接也有一些限制条件,例如,只能使用等值连接,不能使用GROUPBY、CONNECTBWROWNUM等限制条件。在执行计划中若有关键字“HASHJOINSEM,则说明OraCle使用了哈希半连接。考点SQ1.优化10. 什么是反连接(AntiJoin)?正确答案:反连接(AntiJOin)也是种特殊的连接类型,通常用于从一个点中返回不在另一个数据源中的数据行。当做了查询展开时,OraCle经常会把那些外部WHERE条件为NoTEXISTSNOTlN或<>A1.1.的了查询转换成对应的反连接。反连接分为嵌套循环反连接(NESTED1.ooPSNT1.Hint为N1.AJ)、排序合并反连接(MERGEJOINANrn,Hint为MERGE_AJ)和哈希反连接(HASHJOINANrn,Hint为HASF1.AJ)。需要注意的是,NOTIN和V>A1.1.对U1.1.值敏感,这意味着V)TIN后面的子查询或者常量集合一旦有NU1.1.值出现,则整个SQ1.的执行结果就会为NU1.1.,即此时的执行结果将不包含任何记录。但是,NO

    注意事项

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

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开