- 0
- 0
- 约3.78千字
- 约 5页
- 2019-10-15 发布于山西
- 举报
本文档为网上收集,若侵犯了您的利益,请联系(QQ:253169161),我将立即核对删除。
oracle 几个重要的关联技术
执行计划 优化器 Hints analyze dbms_stats explain plan Oracle对数据的访问方式 今天特别回顾了一下这几个非常非常重要的技术。。(oralce太深了)
一,执行计划:Oracle为完成查询任务,所做的一执行方案 ,过程 ,查看方式: 1,使用explain plan ,安装utlxplan.sql之后会自动创建plan_table的表
SQL @?/rdbms/admin/utlxplan.sql #创建 plan_table; 表SQL explain plan for select count(*) from scott.temp01;
Explained.完成explain plan之后,会把分析结果写入plan_table表中
2 SQL跟踪文件,参数timed_statistics ,max_dump_file_size, user_dump_des 三个参数分别设计时间,大小,以及路径。设计sql_trace 参数开启
3 设计set autotrace on set timing on命令 SQL select count(*) from scott.emp;
COUNT(*)----------14
Elapsed: 00:00:00.04
Execution Plan----------------------------------------------------------Plan hash value: 2937609675
-------------------------------------------------------------------| Id | Operation | Name | Rows | Cost (%CPU)| Time |-------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 | 1 (0)| 00:00:01 || 1 | SORT AGGREGATE | | 1 | | || 2 | INDEX FULL SCAN| PK_EMP | 14 | 1 (0)| 00:00:01
#在这里会发现,此处提到一个关于对表的访问方式 全表扫描 索引扫描(也就是rowid)可以使用hint来强制
3 第三种就是使用pl/sql了,这部就不说明了
二 优化器 oracle的优化器有CBO与RBO两种,用参数 optimizer_mode 优化模式设定,共有Rule,Choose,First rows,All rows这四种方式-----------------------------------------------------------------------------
Rule Based Optimizer(RBO)基于规则Cost Based Optimizer(CBO)基于成本,或者讲统计信息
ORACLE 提供了CBO、RBO两种SQL优化器。CBO在ORACLE7 引入,但在ORACLE8i 中才成熟。ORACLE 已经明确声明在ORACLE9i之后的版本中(ORACLE 10G ),RBO将不再支持。因此选择CBO 是必然的趋势。
CBO和 RBO作为不同的SQL优化器,对SQL语句的执行计划产生重大影响,如果要对现有的应用程序从RBO向CBO移植,则必须充分考虑这些影响,避免SQL 语句性能急剧下降;但是,对新的应用系统,则可以考虑直接使用CBO,在CBO模式下进行SQL语句编写、分析执行计划、性能测试等工作,这需要开发者对 CBO的特性比较熟悉。以下小结几点在CBO下写SQL语句的注意事项:
1、RBO自ORACLE 6版以来被采用,有着一套严格的使用规则,只要你按照它去写SQL语句,无论数据表中的内容怎样,也不会影响到你的“执行计划”,也就是说对数据不“敏 感”;CBO计算各种可能“执行计划”的“代价”,即cost,从中选用cost最低的方案,作为实际运行方案。各“执行计划”的cos
原创力文档

文档评论(0)