`
wkf41068
  • 浏览: 452860 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

数据库中SQl执行计划--01

阅读更多
执行计划说明:
call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch        1    140.64     921.65     286181    7035288          0           1
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        3    140.64     921.66     286181    7035288          0           1

Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 86  (APPS)
Number of plan statistics captured: 1

Rows (1st) Rows (avg) Rows (max)  Row Source Operation
---------- ---------- ----------  ---------------------------------------------------
         1          1          1  SORT AGGREGATE (cr=7035288 pr=286181 pw=0 time=921659252 us)
         1          1          1   PARTITION LIST SINGLE PARTITION: KEY KEY (cr=7035288 pr=286181 pw=0 time=921659238 us cost=3 size=39 card=1)
         1          1          1    TABLE ACCESS BY LOCAL INDEX ROWID XLA_TRANSACTION_ENTITIES PARTITION: 9 9 (cr=7035288 pr=286181 pw=0 time=921659220 us cost=3 size=39 card=1)
  30222127   30222127   30222127     INDEX SKIP SCAN XLA_TRANSACTION_ENTITIES_U1 PARTITION: 9 9 (cr=115720 pr=52531 pw=0 time=151161817 us cost=3 size=0 card=14612220)(object id 5888403)

Rows     Execution Plan
-------  ---------------------------------------------------
      0  SELECT STATEMENT   MODE: ALL_ROWS
      1   SORT (AGGREGATE)
      1    PARTITION LIST (SINGLE) PARTITION:KEYKEY
      1     TABLE ACCESS   MODE: ANALYZED (BY LOCAL INDEX ROWID) OF 
                'XLA_TRANSACTION_ENTITIES' (TABLE) PARTITION: START=9 STOP=9
30222127      INDEX   MODE: ANALYZED (SKIP SCAN) OF 
               'XLA_TRANSACTION_ENTITIES_U1' (INDEX (UNIQUE)) PARTITION: 
                 START=9 STOP=9

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch        1    140.64     921.65     286181    7035288          0           1
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        3    140.64     921.66     286181    7035288          0           1


说明:第一段落,展示了所执行SQL的文件。接着是一个包含统计信息的表格。
count:每个类型调用发生的次数。
cpu:所需的CPU时间(单位为秒)。
elapsed:所需的时间消耗(单位为秒)。
disk:所需要的磁盘读取的数量。
query、current:查询模式和当前模式缓存的数据。查询模式读取的块,通常是由一致读取的查询产生。而当前模式读取的块,通常来自自己存在块的变更。它们可以称为逻辑读。
rows:处理记录的条数。
Parse:进行解析,这一步会检查SQL语句的语法、对象的有效性及权限。接着由优化器确定这条语句的执行计划。
Execute:进行执行。SQL语句在这一步执行,如果是查询语句的话,则为第一次的提取操作做准备。对于有些查询(比如含有 for update的语句或执行排序的语句),系统会在这一步就检索出每一条记录。
Fetch:进行提取。查询语句从这里返回记录。
total:是对上面的一个总数的计算。

从这个表格当中,我们可以得到一些重要的比率,如下:
在fetch行中,块读取数据(query+current)与获取的记录数据(rows)的比率。这是查询语句的相对开销的一个粗略指标。返回一定数量的记录时,要访问的内存块越多,每条记录就显得越可贵。
在count列中,解析次数(Parse)与执行次数(Execute)的比率。在理想的情况下,<解析次数?>应接近于1。如果解析次数相对于执行次数来讲显得较高,那么,就表明这条语句在执行没有必要的重解析。
在fetch行中,提取记录数(rows)与提取次数(count)的比率。它表明数组提取机制使用的级别。
在total行中,磁盘读取数(disk)与逻辑读取数(query+current)的比率。它表明数据库缓存区高速缓存的命中率。

第一次执行计划:
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 86  (APPS)
Number of plan statistics captured: 1

Rows (1st) Rows (avg) Rows (max)  Row Source Operation
---------- ---------- ----------  ---------------------------------------------------
         1          1          1  SORT AGGREGATE (cr=7035288 pr=286181 pw=0 time=921659252 us)
         1          1          1   PARTITION LIST SINGLE PARTITION: KEY KEY (cr=7035288 pr=286181 pw=0 time=921659238 us cost=3 size=39 card=1)
         1          1          1    TABLE ACCESS BY LOCAL INDEX ROWID XLA_TRANSACTION_ENTITIES PARTITION: 9 9 (cr=7035288 pr=286181 pw=0 time=921659220 us cost=3 size=39 card=1)
  30222127   30222127   30222127     INDEX SKIP SCAN XLA_TRANSACTION_ENTITIES_U1 PARTITION: 9 9 (cr=115720 pr=52531 pw=0 time=151161817 us cost=3 size=0 card=14612220)(object id 5888403)
第一次执行计划来自于语句关闭时存储在跟踪文件中的信息。这个执行计划不是由EXPLAIN PLAIN命令执行出来的,它代表了实际执行时的执行计划。
参数说明如下:
cr:表明这一步中,处理的逻辑块读取的数据。
pr:表明这一步中,处理物理块的读取的数据。
pw:表明这一步中,物理块的写的数量。
time:这一步所消耗的微秒数。
cost:这一步对应的优化成本。
size:处理的字节数。
card:处理的记录数。

第二次的执行计划则是由tkprof工具中的explain命令得出来的。
Rows     Execution Plan
-------  ---------------------------------------------------
      0  SELECT STATEMENT   MODE: ALL_ROWS
      1   SORT (AGGREGATE)
      1    PARTITION LIST (SINGLE) PARTITION:KEYKEY
      1     TABLE ACCESS   MODE: ANALYZED (BY LOCAL INDEX ROWID) OF 
                'XLA_TRANSACTION_ENTITIES' (TABLE) PARTITION: START=9 STOP=9
30222127      INDEX   MODE: ANALYZED (SKIP SCAN) OF 
               'XLA_TRANSACTION_ENTITIES_U1' (INDEX (UNIQUE)) PARTITION: 
                 START=9 STOP=9
第二次的执行计划则是由tkprof工具中的explain命令得出来的。





  


  
分享到:
评论

相关推荐

    shell连接oracle数据库执行SQL工具脚本-支持select+inset+update

    根据配置文件获取数据库连接,根据传入sql执行sql 调用案例:dbConnectTest.sh "pssc_jk" "select sysdate from dual;" 参数介绍: "pssc_jk" 指配置文件中配置的数据库连接串 “SQL”要执行的SQL,可以是增删改...

    SQLServer数据库管理常用的SQL和T-SQL语句

    SQLServer数据库管理常用的SQL和T-SQL语句

    xxl-job2.2.0使用oracle数据库,执行此sql,来创建数据表

    xxl-job2.2.0使用oracle数据库,执行此sql,来创建数据表

    SQLserver2016-数据库系统概述.pptx

    数据库管理系统 数据库管理功能 数据库管理功能由控制程序实现,其主要功能有:对数据库的完整 性约束条件的检查和执行、安全性检查和并发性控制。 数据库维护功能 数据库维护功能主要包括数据库中数据的输入、转换...

    收获,不止SQL优化--(抓住SQL的本质) .pdf

    , 首先教你SQL整体优化、快速优化实施、如何读懂执行计划、如何左右执行计划这四大必杀招。整这些干嘛呢?答案是,传授一个先整体后局部的宏观解决思路,走进“道”的世界。, 接下来带领大家飞翔在“术”的天空。教...

    SQL数据库操作.pptx

    SQL 面向数据库执行查询 SQL 可从数据库取回数据 SQL 可在数据库中插入新的记录 SQL 可更新数据库中的数据 SQL 可从数据库删除记录 SQL 可创建新数据库 SQL 可在数据库中创建新表 SQL 可在数据库中创建存储过程 SQL...

    数据库MySQL基础知识点1

    day10: 数据库概念及作用 数据库分类:关系型数据库、非关系型数据 数据库管理系统DBMS sql语句含义:结构化查询语言。客户端跟服务端通信的“特殊”语言 关系型数据库核心元素... DQL(数据库查询语言)执行顺序

    Oracle数据库调优之-SQL执行计划粗解

    但是无论用什么办法调优,都必须要先读懂SQL的执行计划,了解应用程序的SQL的性能瓶颈在哪里,才可以进行有效的调优! 举个实际的应用场景,如果一条SQL平时执行的好好的,却有一天突然性能很差,如果排除了系统性能...

    学习SQL语句之SQL语句大全

     SELECT --从数据库表中检索数据行和列  INSERT --向数据库表添加新数据行  DELETE --从数据库表中删除数据行  UPDATE --更新数据库表中的数据  --数据定义  CREATE TABLE --创建一个数据库表  DROP TABLE --...

    若依微服务数据库执行sql

    若依微服务数据库执行sql

    sqldeveloper64-3.2.20.09.87-no-jre

    使用SQL Developer,您可以浏览数据库对象,运行SQL语句和SQL脚本,编辑和调试PL / SQL语句。您还可以运行任何报告的数量,以及创建和保存您自己的的。SQL Developer可以提高工作效率并简化数据库开发任务。 一个...

    mysql数据库CPU高,实时抓住数据库执行中的SQL语句,shell工具(支持mysql5.7)

    #适用于实时查询mysql占用CPU高的语句,循环监控mysql进程情况,当CPU大于一定的前执行中的SQL情况. #执行前,修改ENV认证部分 #编写:Chaoren #2022年3月4日18:38:53 # #对于执行时间非常短的SQL可能监控到的语句...

    Oracle数据库关于SQL的执行计划

    Oracle数据库关于SQL的执行计划 本文的目的:  1、说一说Oracle的Optimizer及其相关的一些知识。  2、回答一下为什么有时一个表的某个字段明明有索引,当观察一些SQL的执行计划时,发现确不走索引的问题。  3、...

    最新手机号段归属地数据库(2023-02-01)-496699条

    手机号段归属地数据库,最新更新日期2023-02-01,共496699条,截止资源上传日,就是最新的资源,有DAT,SQL,EXCEL版,收空间限制,只上传了SQL版,带数据库结构,可以在MySQL直接导入。建议使用命令行的方式。使用中...

    java定时执行sql语句

    通过配置数据库连接信息和要执行的sql语句,可实现定时执行多个sql语句。 所要执行的语句只能是写死的,可支持sqlserver mysql oracle。 配置说明: config/sys.properties 中指定数据库类型及连接信息,执行间隔...

    通过SqlCmd执行超大SQL文件

    由于sql文件过大,超过了100M,再数据库的窗口执行,结果超出内存了,对于特别大的sql文件可以使用sqlcmd进行执行 ###1.打开cmd窗口 运行–cmd–进入到sql文件所在的文件夹。 如果是win7可按Shift+右键 在此窗口打开...

    sqlserver多数据库自启动定时备份工具批量执行脚本

    sqlserver多数据库 自启动 定时备份工具 批量执行脚本

    JDBC专题(二)-JDBC对数据库进行CRUD

    **java.sql** 以及 **javax.sql**的两个包下,以后同学们导包的时候要注意。 图中是几个核心类的关系。 ...- ResultSet:结果集,Statement执行完sql---select之后,会返回结果,结果给了ResultSet

    SQL执行计划简单分析

    SQL ORACLE 执行计划 分析 数据库

    人大金仓数据库SQL手册

    人大金仓数据库SQL手册: 详细讲解SQL语法

Global site tag (gtag.js) - Google Analytics