执行计划执行计划是一条sql语句在ORACLE中的执行过程或访问路径的描述。即对一个sql语句,从执行计划可以看出oracle完成任务的详细方案。如果要分析某条SQL的性能问题,通常我们要先看SQL的执行计划,看看SQL的每一步执行是否存在问题。 看懂执行计划也就成了SQL优化的先决条件。 通过执行计划定位性能问题,定位后就通过建立索引、修改sql等解决问题。相关概念-单表访问路径

  • TABLE ACESS FULL 全表扫描:没有建索引或者没有走上索引, 在较大的表上非常容易出现性能问题,应该尽量避免。
  • index range scan 索引范围扫描 :走非唯一索引,或者是唯一索引使用了range操作(< > between等)
  • index unique scan 索引唯一扫描:可以定位到单个ROWID。如果存在UNIQUE 或PRIMARY KEY 约束,就可以走索引唯一扫描
  • index skip scan 索引跳跃扫描 :往往是走组合索引,但where条件中没有包括组合索引中所有的列
  • index full scan 索引全扫描
  • index fast full scan 索引快速全扫描

相关概念-表的连接方式

  • nestLoop 嵌套连接:可以理解成两个嵌套的for循环,嵌套连接适合于返回少量数据,并且内部表关联字段上存在索引,外部表很小或者走索引后返回很少数据。成本约等于N次索引(N为外部表返回的记录数)
  • hash join:
    总成本为两张表单表访问路径的总成本!即使不存在索引,也就是两张表的全扫,与记录数无关。因此Hash连接适合返回大量数据,不要求表关联字段存在索引,Hash连接用在返回少量数据上很吃亏

执行计划的解读

  • 对同一凹层,先上后下执行
  • 对不同凹层,先里后外执行

如何查看sql语句的执行计划

  • 直接解析SQL语句.
    Explain plan for XXX;
    Select * from table(dbms_xplan.display);
  • 根据SQL_ID查询,
    select * from table
    (dbms_xplan.display_cursor('&sql_id',0,
    'allstats last'));
  • 从视图v$sql_plan 中获取。
  • sqplus中可以使用set autotrace on,自动获取执行计划和统计信息

oracle for循环_浅谈Oracle的执行计划相关推荐

  1. 单引号oracle如何转义_浅谈oracle中单引号转义

    ORACLE 单引号转义: 在ORACLE中,单引号有两个作用: 1:字符串是由单引号引用 2:转义. 单引号的使用是就近配对,即就近原则.而在单引号充当转义角色时相对不好理解 1.从第二个单引号开始 ...

  2. oracle 删除补全日志组_浅谈Oracle 20c ASM文件组模板技术

    首先,Oracle ASM file group 是一组文件,它们共享相同的属性和特征.文件组最主要的好处是在相同的磁盘组里为不同的数据库文件定义不同的可用性属性,这一特性让在多租户架构的pdb (可 ...

  3. oracle里的to_nchar,浅谈Oracle中的CHAR与NCHAR数据类型 .

    CHAR与NCHAR在Oracle数据库是常用的类型,不过两种数据类型是互相不兼容的,这里大概简要谈一下这2种数据类型吧. 在Oracle中,CHAR类型是一种固定长度的字符串类型,最大长度是2000 ...

  4. var和function谁先优先执行_浅谈JavaScript 的执行顺序

    JavaScript是一种描述型脚本语言,它不同于java或C#等编译性语言,它不需要进行编译成中间语言,而是由浏览器进行动态地解析与执行.如果你不能理解javaScript语言的运行机制,或者简单地 ...

  5. 浅谈mysql的执行计划是何方神圣

    前言 平时我们优化sql,通过explain,分析得到的执行计划研究透彻,知道每个执行计划在底层是如何执行的,那么再进行相关的调优就轻而易举了.所谓的执行计划,落实到底层,无非就是先访问哪个表,用哪个 ...

  6. oracle数据库财务恢复,Oracle数据库备份与恢复特性浅谈【常用财务软件使用教程】...

    Oracle数据库备份与恢复特性浅谈 Oracle数据库备份与恢复有三种不同的方式,这里将简单介绍这些方式的使用策略已经Oracle数据库的用户角色管理策略. Oracle数据库备份与恢复是每个Ora ...

  7. oracle hash join outer,CSS_浅谈Oracle中的三种Join方法,基本概念 Nested loop join: Outer - phpStudy...

    浅谈Oracle中的三种Join方法 基本概念 Nested loop join: Outer table中的每一行与inner table中的相应记录join,类似一个嵌套的循环. Sort mer ...

  8. 浅谈Oracle RAC --集群管理软件GI

    浅谈Oracle RAC --集群管理软件GI基本架构 今天周五,想想可以过周末,心情大好.一周中最喜欢过的就是周五晚上,最不喜欢过的是周日晚上和周一,看来我不是个热爱劳动的人啊.趁着现在心情愉悦,赶 ...

  9. 浅谈oracle树状结构层级查询

    oracle树状结构查询即层次递归查询,是sql语句经常用到的,在实际开发中组织结构实现及其层次化实现功能也是经常遇到的,虽然我是一个java程序开发者,我一直觉得只要精通数据库那么对于java开发你 ...

最新文章

  1. 为你的网站使用paypal
  2. 成功解决.append方法出现错误IndexError: list index out of range
  3. 模型开发-GBDT决策树模型开发代码
  4. 基于matlab编译码器的设计,基于MATLAB循环码编译码仿真
  5. 怎么下载完整的python_怎么下载python并安装
  6. React简介、虚拟DOM、Diff算法、创建React项目、JSX语法、组件、组件声明方式、组件传值props和state、组件的生命周期
  7. spring 多数据源-实现
  8. android 沉浸式_【沉浸式体验】投影秀科技与视觉:体验亦真亦幻的超常感受
  9. Python基础灬函数补充(作用域,迭代器,生成器)
  10. 移动开发不能不知道的事-meta
  11. 自动驾驶 从入门到精通 学习资料汇总 Week1~Week7
  12. SSO单点登录系统的设计与实现
  13. oracle 数据库备份脚本
  14. 电脑登陆网页显示服务器出错,为什么新浪微博用电脑登陆总是提示网络错误
  15. __kindof用法
  16. High Scalability创始人Todd Hoff:Facebook网络性能的秘密武器
  17. wing ftp server网页无法访问
  18. python字典统计排序1_数据分析1_入门Python
  19. Java学习中遇到的中文乱码问题的整理和解决方法
  20. [LeetCode] 面试题 02.07. 链表相交

热门文章

  1. 先验概率vs后验概率
  2. 最优布线问题(普里姆算法)
  3. 伺服电机常用参数设置_6个步骤教你如何快速调试伺服电机
  4. python系统监控_python psutil系统监控详解
  5. python免安装版_web.py入门01——python安装
  6. 软件性能测试报告_软件测试新手请收好:测试基本流程、及如何写好测试用例全在这里!...
  7. Celery分布式任务队列的认识和基本操作
  8. C# ZipHelper C#公共类 -- ICSharpCode.SharpZipLib.dll实现压缩和解压
  9. 9本java程序员必读的书(附下载地址)
  10. 【转】 UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合