您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 44-优化和执行计划
优化&执行计划OracleDatabaseAdministration大纲•Oracle优化器•执行计划优化器优化器•影响你选择路径的因素:–以前选择道路的经验–对道路的熟悉程度–距离目标的远近–交通的拥堵情况–天气预报•因此,你常看天气预报和交通报告,如果没有比如施工或者事故,很快你会确定一条昀佳路线。优化器•Oracle的优化器环境中,处理SQL语句的方法类似。•假设你本人就是优化器。到达B城市(目标)的动作就类似于访问数据文件内数据的动作。•Oracle优化器以什么作为依据来决定访问数据的方式呢?优化器•Oracle优化器基于以下统计数字:–曾经分析过的表和可用的统计数字(选择道路的经验)–行和表的长度(城市间的距离)–要检索的数据量(交通的拥堵情况)–可得到的索引(天气或交通报告)–语法和语句的顺序(道路的熟悉程度)•Oracle优化器是一种算法,它确定执行SQL语句以及检索数据的昀有效的方法。优化器•Oracle优化器完成如下功能:–评估语句中的表达式和条件;–将复杂语句转换为等价的联合查询;–选择优化的目标(CBOorRBO);–确定如何访问表以及怎样提取数据;–确定多表操作的连接顺序;–为每对表选择要执行的连接类型。优化器•Oracle优化器的模式:–CBO(Cost-basedOptimizer)–RBO(Rule-basedOptimizer)引言所有的dba都明确,大多数性能问题是由于低劣的SQL导致。作为dba,必须掌握数据库管理的基础知识,同时要能识别低劣SQL。并掌握怎样为每一个查询SQL生成执行计划。理解和识别执行计划(ExplainPlan)是DBA调整性能的基本能力。执行计划:简单的说就是一条特定SQL语句将被怎样执行的方案。ExplainPlan•准备阶段–1,以system用户登录–2,运行@utlxplan.sql–3,创建同义词–4,授予权限ExplainPlan•执行阶段–1,EXPLAINPLAN命令–2,生成执行计划–3,查看执行计划AUTOTRACE•开发人员昀合适的工具•自动跟踪SQL语句的执行计划AUTOTRACE•准备阶段–1,以system用户登录–2,运行@plustrce.sql–3,授予权限AUTOTRACE•执行阶段–1,AUTOTRACE命令–2,使用方法OEMOEMOEMOEMOEMOEMOEMAnalyze•分析的作用:分析的结果产生统计数据,这些统计数据在Oralce优化器决定执行计划时使用。保存统计数据的视图:dba_tablesdba_tab_colsdba_indexesAnalyze•分析的主要对象:–表/索引/CLUSTER–模式–数据库Analyze•分析的工具:–ANALYZE语句–DBMS_UTILITY–DBMS_STATS–DBMS_DDL改进SQL•在编写SQL语句时,应该考虑:–记录改进查询前后的时间和成本–记录查询执行计划前后的时间和成本–记录产生查询统计数字前后的时间和成本–记录为了改进语句的执行所采取行动的时间和成本。改进SQL•改进SQL语句的几个方面:–分析表和索引–合理的创建索引–考虑在FK上创建索引–在小表上使用索引–使用or与union互换–并行执行–表的别名–使用表连接替代简单的子查询改进SQL•改进SQL语句的几个方面:–使用或NOTIN与NOTEXISTS互换–使用Oracle提示符–使用UNIONALL替代UNION–当计算行数时使用索引列–重写查询–使用基于函数的索引–使用绑定变量SQL案例•题目2:–表中大概有6千万条记录。其中type=2的有3千万条。现在的执行时间是3~5分钟。请问这条语句怎样优化?
本文标题:44-优化和执行计划
链接地址:https://www.777doc.com/doc-4368934 .html