Oracle 11g 查看执行计划之10046事件

使用10046事件查看真实的执行计划

操作如下:

SQL> conn / as sysdba

Connected.

SQL>

SQL> oradebug setmypid

Statement processed.

SQL>

SQL> oradebug event 10046 trace name context forever,level 12;

Statement processed.

SQL> select count(object_id) from roidba.tt;

COUNT(OBJECT_ID)

-----------------------------

5524288

SQL> oradebug event 10046 trace name context off;

Statement processed.

SQL> oradebug tracefile_name;

/u01/app/oracle/diag/rdbms/orcl/orcl2/trace/orcl2_ora_29019.trc

SQL> !ls -l /u01/app/oracle/diag/rdbms/orcl/orcl2/trace/orcl2_ora_29019.trc

-rw-r----- 1 oracle asmadmin 3478 Apr 17 10:32 /u01/app/oracle/diag/rdbms/orcl/orcl2/trace/orcl2_ora_29019.trc

SQL>

<roidb2:orcl2:/home/oracle>$tkprof /u01/app/oracle/diag/rdbms/orcl/orcl2/trace/orcl2_ora_29019.trc trace.out

TKPROF: Release 11.2.0.4.0 - Development on Tue Apr 17 10:37:19 2018

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

<roidb2:orcl2:/home/oracle>$more trace.out

TKPROF: Release 11.2.0.4.0 - Development on Tue Apr 17 10:37:19 2018

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Trace file: /u01/app/oracle/diag/rdbms/orcl/orcl2/trace/orcl2_ora_29019.trc

Sort options: default

********************************************************************************

count    = number of times OCI procedure was executed

cpu      = cpu time in seconds executing

elapsed  = elapsed time in seconds executing

disk     = number of physical reads of buffers from disk

query    = number of buffers gotten for consistent read

current  = number of buffers gotten in current mode (usually for update)

rows     = number of rows processed by the fetch or execute call

********************************************************************************

SQL ID: fp42r7m3kgabz Plan Hash: 1131838604

select count(object_id)

from

roidba.tt

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        2      0.59       0.63          0      12279          0           1

------- ------  -------- ---------- ---------- ---------- ----------  ----------

total        4      0.59       0.63          0      12279          0           1

Misses in library cache during parse: 0

Optimizer mode: ALL_ROWS

Parsing user id: SYS

Number of plan statistics captured: 1

Rows (1st) Rows (avg) Rows (max)  Row Source Operation

---------- ---------- ----------  ---------------------------------------------------

         1          1          1  SORT AGGREGATE (cr=12279 pr=0 pw=0 time=631302 us)

   5524288    5524288    5524288   INDEX FAST FULL SCAN IDX_OBJECT_ID (cr=12279 pr=0 pw=0 time=2086333 us cost=3335 size=

13810720 card=2762144)(object id 87785)

Elapsed times include waiting on following events:

Event waited on                             Times   Max. Wait  Total Waited

----------------------------------------   Waited  ----------  ------------

SQL*Net message to client                       2        0.00          0.00

SQL*Net message from client                     2        7.62          7.62

********************************************************************************

OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS

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        2      0.59       0.63          0      12279          0           1

------- ------  -------- ---------- ---------- ---------- ----------  ----------

total        4      0.59       0.63          0      12279          0           1

Misses in library cache during parse: 0

Elapsed times include waiting on following events:

Event waited on                             Times   Max. Wait  Total Waited

----------------------------------------   Waited  ----------  ------------

SQL*Net message to client                       3        0.00          0.00

SQL*Net message from client                     3        7.62         13.91

OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS

call     count       cpu    elapsed       disk      query    current        rows

------- ------  -------- ---------- ---------- ---------- ----------  ----------

Parse        0      0.00       0.00          0          0          0           0

Execute      0      0.00       0.00          0          0          0           0

Fetch        0      0.00       0.00          0          0          0           0

------- ------  -------- ---------- ---------- ---------- ----------  ----------

total        0      0.00       0.00          0          0          0           0

Misses in library cache during parse: 0

1  user  SQL statements in session.

0  internal SQL statements in session.

1  SQL statements in session.

********************************************************************************

Trace file: /u01/app/oracle/diag/rdbms/orcl/orcl2/trace/orcl2_ora_29019.trc

Trace file compatibility: 11.1.0.7

Sort options: default

1  session in tracefile.

1  user  SQL statements in trace file.

0  internal SQL statements in trace file.

1  SQL statements in trace file.

1  unique SQL statements in trace file.

69  lines in trace file.

0  elapsed seconds in trace file.

原文地址:http://blog.51cto.com/roidba/2104312

时间: 2024-08-28 17:41:14

Oracle 11g 查看执行计划之10046事件的相关文章

oracle如何查看执行计划

1.在PL/SQL Developer中得到一个SQL的执行计划 输入想要查看执行计划的目标SQL,再按一下快捷键F5就可以了.2.explain plan 命令 explain plan for + 目标SQL select * from table(dbms_xplan.display)3. DBMS_XPLAN 包 1) select * from table(dbms_xplan.display_cursor(null,null,'advanced')) 它用于在SQLPLUS中查看刚刚

Oracle数据库查看执行计划

基于ORACLE的应用系统很多性能问题,是由应用系统SQL性能低劣引起的,所以,SQL的性能优化很重要,分析与优化SQL的性能我们一般通过查看该SQL的执行计划,本文就如何看懂执行计划,以及如何通过分析执行计划对SQL进行优化做相应说明. 一.什么是执行计划(explain plan) 执行计划:一条查询语句在ORACLE中的执行过程或访问路径的描述. 二.如何查看执行计划 1: 在PL/SQL下按F5查看执行计划.第三方工具toad等. 很多人以为PL/SQL的执行计划只能看到基数.优化器.耗

Oracle EBS 查看执行计划

explain plan forSELECT MMT.TRANSACTION_ID,GIR.JE_HEADER_ID,GIR.JE_LINE_NUMFROM   GL_IMPORT_REFERENCES      GIR       ,MTL_MATERIAL_TRANSACTIONS MMTWHERE  1=1AND    GIR.JE_HEADER_ID = :1AND    GIR.JE_LINE_NUM = :2; select *from table(dbms_xplan.displa

oracle里的执行计划-查看

内容主要来自看书学习的笔记,如下记录了常见查询执行计划的方法. 2.2 如何查看执行计划1.explain plan2.dbms_xplan包3.autotrace4.10046事件5.10053事件6.awr/statspack报告(@?/rdbms/admin/awrsqrpt)7.脚本(display_cursor_9i.sql) 2.2.1 explain planexplain plan for sqlselect * from table(dbms_xplan.display);SQ

oracle查看执行计划入门

基于Oracle的应用系统很多的性能问题都是由应用系统的SQL性能低劣引起的,因此SQL的性能优化非常重要.要分析与优化SQL的性能,一般是通过查看该SQL的执行计划,然后通过执行计划有针对性地对SQL进行相应的优化. 什么是执行计划(Explain Plan) 执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述. SQL是一门傻瓜式语言,每一个条件就是一个需求,访问的顺序不同就形成了不同的执行计划.Oracle必须要做出选择,一次只能有一种访问路径,也就是一次只能有一个执行计划.

Oracle 查看执行计划问题

一.描述在查看执行计划测试的过程中遇到使用dbms_xplan.display无法查看执行计划,发现是因为之前在测试的过程中打开了set autot on,关闭后(set autot off) ,执行计划可以正常显示. 二.操作过程 SQL> SQL> explain plan for select count(*) from tt; Explained. Elapsed: 00:00:00.00 SQL> set lines 200 pages 2000 SQL> select

Oracle rownum影响执行计划

今天调优一条SQL语句,由于SQL比较复杂,用autotrace很难一眼看出哪里出了问题,直接上10046. SELECT AB.* FROM (SELECT A.*, rownum RN FROM (SELECT * from (SELECT DISTINCT (D.DEVICE_ID), F.FUNCTION_LOCATION_ID from GG_device D, GG_CLASSIFY_CARD C, GG_function_location F, GG_fl_device L, GG

简单对比查看执行计划的两种方法EXPLAIN PLAN 和 AUTOTRACE

EXPLAIN PLAN 和 AUTOTRACE 都可以查看执行计划. 值得一提的是:前者只是优化器通过读取数据字典的统计信息做出'最佳'访问路径判断,并没有真正去执行语句:后者是实际去执行了SQL语句,同时把访问记录数.执行计划.统计信息等打印出来. 下面粘出实验结果加以说明,注意对比两者的耗时: <p>SQL> CONNECT /AS SYSDBA Connected.</p><p>SQL> SET LINESIZE 300; SQL> SET T

如何查看执行计划以及执行计划的准确性

下面的执行计划是怎么打印出来的,很多朋友还是不知道.其实语句只有三条: explain plan for 你要查看的SQL语句; commit; select * from table(dbms_xplan.display); -----分割线---------------------------------- 先告诉大家一个原则,看执行计划的时候,从第一行开始向右下看,一直到最右边.如果有并列的,那么先上再下.如果没并列,右边的先执行. 闲话少说,先上图吧: 这是一个简单的SQL的执行计划,这