ORACLE SQL语句调优基础ppt课件.ppt

ORACLE SQL语句调优基础ppt课件.ppt

ID:59416102

大小:147.50 KB

页数:41页

时间:2020-09-19

ORACLE SQL语句调优基础ppt课件.ppt_第1页
ORACLE SQL语句调优基础ppt课件.ppt_第2页
ORACLE SQL语句调优基础ppt课件.ppt_第3页
ORACLE SQL语句调优基础ppt课件.ppt_第4页
ORACLE SQL语句调优基础ppt课件.ppt_第5页
资源描述:

《ORACLE SQL语句调优基础ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、ORACLESQL语句调优基础联合创新2021/10/81内容1、基本概念2、一些调优技巧2021/10/821、基本概念2021/10/83sql语句是如何执行的硬解析软解析执行计划变量绑定读取数据块到databuffer静态SQL/动态SQL2021/10/84执行计划的优化策略RBO(Rule-BasedOptimizer)CBO(Cost-BasedOptimizer)choose方式firstrow/allrows方式2021/10/85oracle的一些系统视图v$parameterv$system

2、_eventv$session_wait/v$session_eventv$sessionv$processv$lockv$sqltextv$sgastat2021/10/86oracle的事务和锁初步DML锁:TXDDL锁:TMlatch锁2021/10/87基础表的选择基础表(DrivingTable)是指被最先访问的表(通常以全表扫描的方式被访问).根据优化器的不同,SQL语句中基础表的选择是不一样的.如果你使用的是CBO(COSTBASEDOPTIMIZER),优化器会检查SQL语句中的每个表的物理大小

3、,索引的状态,然后选用花费最低的执行路径.如果你用RBO(RULEBASEDOPTIMIZER),并且所有的连接条件都有索引对应,在这种情况下,基础表就是FROM子句中列在最后的那个表.2021/10/88索引索引是表的一个概念部分,用来提高检索数据的效率.实际上,ORACLE使用了一个复杂的自平衡B-tree结构.通常,通过索引查询数据比全表扫描要快.当ORACLE找出执行查询和Update语句的最佳路径时,ORACLE优化器将使用索引.同样在联结多个表时使用索引也可以提高效率.另一个使用索引的好处是,它提供

4、了主键(primarykey)的唯一性验证.虽然使用索引能得到查询效率的提高,但是我们也必须注意到它的代价.索引需要空间来存储,也需要定期维护,每当有记录在表中增减或索引列被修改时,索引本身也会被修改.这意味着每条记录的INSERT,DELETE,UPDATE将为此多付出4,5次的磁盘I/O.因为索引需要额外的存储空间和处理,那些不必要的索引反而会使查询反应时间变慢.2021/10/892、sql调优的一些技巧2021/10/8101:选用适合的ORACLE优化器设置缺省的优化器,可以通过对init.ora文件

5、中OPTIMIZER_MODE参数的各种声明.你当然也在SQL句级或是会话(session)级对其进行覆盖.Select/*+rule*/*fromtest;为了使用基于成本的优化器(CBO),你必须经常运行analyze命令,以增加数据库中的对象统计信息(objectstatistics)的准确性.2021/10/8112:指定索引(a).全表扫描:全表扫描就是顺序地访问表中每条记录.ORACLE采用一次读入多个数据块(databaseblock)的方式优化全表扫描.(b).通过ROWID访问表:你可以采用基

6、于ROWID的访问方式情况,提高访问表的效率,ROWID包含了表中记录的物理位置信息.ORACLE采用索引(INDEX)实现了数据和存放数据的物理位置(ROWID)之间的联系.通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能上的提高.2021/10/8123:共享的语句满足三个条件A.字符级的比较:当前被执行的语句和共享池中的语句必须完全相同.例如:SELECT*FROMEMP;SELECT*fromEMP;Select*FromEmp;SELECT*FROMEMP;2021/10

7、/8133:共享的语句满足三个条件两个语句所指的对象必须完全相同:例如:用户对象名如何访问JackSal_limitprivatesynonymWork_citypublicsynonymPlant_detailpublicsynonymJillSal_limitprivatesynonymWork_citypublicsynonymPlant_detailtableowner考虑一下下列SQL语句能否在两个用户之间共享:SQL能否共享原因selectmax(sal_cap)fromsql_limit;不能每个

8、用户都有一个privatesynonym-Sal_limit,他们是不同的对象selectcount(*)fromwork_city能两个用户访问相同的对象publicwheresdesclike'NEW%';synonym-Work_cityselecta.sdesc,b.location不能用户Jack通过publicsynonym访fromwork_citya,plant_det

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。