- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
oracle,两个执行计划
Oracle的SQL语句执行效率问题查找与解决方法 一、识别占用资源较多的语句的方法 1.测试组和最终用户反馈的与反应缓慢有关的问题。 2.利用V_$SQLAREA视图提供了执行的细节。 ?数据列 EXECUTIONS:执行次数 DISK_READS:读盘次数 COMMAND_TYPE:命令类型 OPTIMIZER_MODE:优化方式 SQL_TEXT:Sql语句 SHARABLE_MEM:占用sharedpool的内存多少 BUFFER_GETS:读取缓冲区的次数 ?用途 1、帮忙找出性能较差的SQL语句 2、帮忙找出最高频率的SQL 3、帮忙分析是否需要索引或改善联接 3.监控当前Oracle的session,如出现时钟的标志,表示此进程中的sql运行时间较长。 4.Trace工具: a)查看数据库服务的初始参数:timed_statistics、user_dump_dest和 max_dump_file_size b)Step1:altersessionsetsql_trace=true c)Step2:runsql; d)Step3:altersessionsetsql_trace=false e)Step4:使用“TKPROF”转换跟踪文件 f)Parse,解析数量大通常表明需要增加数据库服务器的共享池大小, query或current提取数量大表明如果没有索引,语句可能会运行得更有效, disk提取数量表明索引有可能改进性能, librarycache中多于一次的错过表明需要一个更大的共享池大小 二、如何管理语句处理和选项 ?基于成本和基于规则两种优化器,简称为CBO和RBO?OptimizerMode参数值: Choose:如果存在访问过的任何表的统计数据,则使用基于成本的Optimizer,目标是获得最优的通过量。如果一些表没有统计数据,则使用估计值。如果没有可用的统计数据,则将使用基于规则的Optimizer All_rows:总是使用基于成本的Optimizer,目标是获得最优的通过量 First_rows_n:总是使用基于成本的Optimizer,目标是对返回前N行获得最优的响应时间 First_rows:用于向后兼容。使用成本与试探性方法的结合,以便快速传递前几行RULE:总是使用基于规则的Optimizer 三、使用数据库特性来获得有助于查看性能的处理统计信息No1:ExplainPlan A)使用Explain工具需要创建Explain_plan表,这必须先进入相关应用表、视图和索引 的所有者的帐户内.(@D:\oracle\ora92\rdbms\admin\utlxplan) B)表结构: STATEMENT_ID:为一条指定的SQL语句确定特定的执行计划名称。如果在EXPLANPLAN语句中没有使用SETSTATEMENT_ID,那么此值会被设为NULL。 OPERATION:在计划的某一步骤执行的操作名称,例如:Filters,Index,Table,MargeJoinsandTable等。 OPTION:对OPERATION操作的补充,例如:对一个表的操作,OPERATION可能是TABLEACCESS,但OPTION可能为byROWID或FULL。 Object_Owner:拥有此databaseObject的Schema名或Oracle帐户名。 Object_name:DatabaseObject名 Object_type:类型,例如:表、视图、索引等等 ID:指明某一步骤在执行计划中的位置。 PARENT_ID:指明从某一操作中取得信息的前一个操作。通过对与ID和PARENT_ID使用ConnectBy操作,我们可以查询整个执行计划树。 C)EXPLAIN搜索路径解释 ?全表扫描(无可用索引,大量数据,小表,全表扫描 hints,HWM(HighWaterMark),Rowid扫描) ?索引扫描 索引唯一扫描 索引范围扫描 索引降序范围扫描 索引跳跃扫描 全索引扫描 快速全索引扫描 索引连接 位图连接 ?如何选择访问路径:CBO首先检查WHERE子句中的条件以及FROM子句,确定有哪 些访问路径是可用的。然后CBO使用这个访问路径产生一组可能的执行计划,再通过索引、表的统计信息评估每个计划的成本,最后优化器选择成本最低的一个。?表的连接方式: NestedLoops会循环外表,逐个比对和内表的连接是否符合条件。在
文档评论(0)