ORACLE数据库教程-SQL学习篇.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库的高伸缩性--小结 通过本小节学习需要掌握: 使用变量绑定可以提升应用程序的整体执行速度 锁定在保证数据一致性的同时降低了并发处理能力 数据库之间的锁定机制是不同的 如何避免死锁 通过Developer看索引使用 Developer提供了Explain plan Window图形窗口,可以方便地看到SQL的执行计划。 启动Explain plan Window有两种方法,第一种在SQL Window下输入sql,按F5,第二种,使用菜单new/Explain plan Window。 窗体介绍 窗体分为两大部分,上半部分是sql区,可以在此输入要分析的sql,下半部分是SQL的执行计划。Optimizer goal可以选择优化器,其中: First_Rows :基于CBO的优化器,侧重于返回一条结果记录,大多数使用Single Block IO(类似于Index Scan) All_Rows : 基于CBO的优化器,侧重于返回所有结果记录,大多数使用Mutil Block IO(类似于Full Table Scan) Rule : 基于RBO的优化器 Choose : 根据表是否做过分析来选择使用RBO还是CBO。如果有一个或以上的表做过表分析,则使用CBO;如果都没有做过表分析,则使用RBO。 用导航按键查看执行步骤,执行步骤是从上到下,从内到外。 SQL优化--索引概念 优化器 目前Oracle的优化器共有三种: Rule基于规则-- Rule Based Optimizer Cost基于成本-- Cost Based Optimizer Choose选择性。 数据库在默认安装情况下,Oracle使用Choose优化器。 SQL优化--索引概念 Rule(基于规则--Rule Based Optimizer) From子句从外侧向内侧的顺序检索表,Where子句从下向上解析条件。 根据From规则,在多表查询时,将返回结果集最少的表作为基础表,写在From最外侧(并不是最小的表,应该是查询限定最强的表,一般情况下是查询主体表),然后根据表之间的限定依赖关系依次从外侧写到内侧。Oracle执行时,首先扫描最外侧表(驱动表),并对结果集进行排序,然后扫描内侧表(被探测表),将第二个表检索出的结果集(用Row Source2表示)与第一个表中相应结果集(用Row Source1表示)进行合并后再次向内侧表扫描合并,直到全部表被检索合并,返回结果集。 根据Where规则,先写表连接,表连接从内侧向外侧的顺序写,可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾(结合From规则,末尾的查询条件应该是最外侧的表)。写查询条件时应该按照使用的索引字段顺序从上写到下。 当查询表有N个,表关联应该是N-1个。 SQL优化--索引概念 Cost(基于成本--Cost Based Optimizer ) CBO是依赖表的统计信息来选择最低成本的执行计划, 这些统计使用ANALYZE命令完成,在使用CBO之前必须将Table分析好。 CBO最多只能排列2000种表的排列关系,也就是说当超过6个以上的表(2的7次方大于2000)进行关联时,CBO就不能把所有的排列关系都计算到,会遗漏一些,所以这个时候生成的执行计划据可能不是最优的。 对于数据变化比较大的表,你必须经常运行analyze 命令,以增加数据库中的对象统计信息(object statistics)的准确性,以提高系统效率。 语法: analyze ? table ? table_name ? estimate ? statistics ? sample ? x ? percent; ? --抽样估算法,使用x%抽样率对table_name表分析 analyze ? table ? table_name ? compute ? statistics; ? --完全计算法 对表作完全计算所花的时间相当于做全表扫描,抽样估算法由于采用抽样,比完全计算法的生成统计速度要快,如果不是要求要有精确数据的话,尽量采用抽样分析法。建议对表分析采用抽样估算,对索引分析可以采用完全计算。 SQL优化--索引概念 Choose(选择性) 根据表是否做过分析来选择使用RBO还是CBO。如果有一个以上的表做过表分析,则使用CBO;如果都没有做过表分析,则使用RBO。 SQL优化--索引概念 索引的扫描分类 索引唯一扫描(Index unique scan) 索引范围扫描(Index range scan) 索引全扫描(Index full scan) 索引快速扫描(Index fast full scan) 索引跳跃扫描(Index skip scan) SQL优化-

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档