(一)开启10046追踪

SQL> alter session set events '10046 trace name context forever,level 12';

(二)执行sql语句

SELECT J.JOB_ID,
J.JOB_TITLE,
J.MIN_SALARY,
J.MAX_SALARY,
E.EMPLOYEE_ID,
E.FIRST_NAME || E.LAST_NAME AS NAME,
E.EMAIL,
E.PHONE_NUMBER
FROM JOBS J, EMPLOYEES E
WHERE J.JOB_ID = E.JOB_ID;

(三)关闭追踪

SQL> alter session set events '10046 trace name context off';

(四)在查看alert目录里面找到新生成的文件,执行分析

(4.1)找到文件

[oracle@rac1 trace]$ pwd

/u01/app/oracle/diag/rdbms/rac/rac1/trace

[oracle@rac1 trace]$ ls -lrt

...

...

-rw-r----- 1 oracle asmadmin 196 Jan 14 15:41 rac1_ora_27998.trm

-rw-r----- 1 oracle asmadmin 9530 Jan 14 15:41 rac1_ora_27998.trc

(4.2)解析trc文件

[oracle@rac1 trace]$ tkprof rac1_ora_27998.trc lijiaman_10046.txt sys=no sort=prsela,exeela,fchela

(4.3)查看解析后的文件

[oracle@rac1 trace]$ ls -lrt
...
-rw-r----- 1 oracle asmadmin 112680 Jan 14 15:39 rac1_ora_12468.trc
-rw-r----- 1 oracle asmadmin 196 Jan 14 15:41 rac1_ora_27998.trm
-rw-r----- 1 oracle asmadmin 9530 Jan 14 15:41 rac1_ora_27998.trc
-rw-r--r-- 1 oracle oinstall 8587 Jan 14 15:43 lijiaman_10046.txt

附录:解析后文件信息

TKPROF: Release 11.2.0.1.0 - Development on Sun Jan 14 15:43:44 2018

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

Trace file: rac1_ora_27998.trc

Sort options: prsela exeela fchela

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

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

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

select j.job_id,

j.job_title,

j.min_salary,

j.max_salary,

e.employee_id,

e.first_name||e.last_name as name,

e.email,

e.phone_number

from jobs j,employees e

where j.job_id = e.job_id

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.00 0.00 0 11 0 107

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

total 4 0.00 0.00 0 11 0 107

Misses in library cache during parse: 1

Optimizer mode: ALL_ROWS

Parsing user id: 85

Rows Row Source Operation

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

107 MERGE JOIN (cr=11 pr=0 pw=0 time=2014 us cost=6 size=8988 card=107)

19 TABLE ACCESS BY INDEX ROWID JOBS (cr=4 pr=0 pw=0 time=90 us cost=2 size=627 card=19)

19 INDEX FULL SCAN JOB_ID_PK (cr=2 pr=0 pw=0 time=18 us cost=1 size=0 card=19)(object id 73932)

107 SORT JOIN (cr=7 pr=0 pw=0 time=78 us cost=4 size=5457 card=107)

107 TABLE ACCESS FULL EMPLOYEES (cr=7 pr=0 pw=0 time=106 us cost=3 size=5457 card=107)

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 0.86 0.93

Disk file operations I/O 1 0.00 0.00

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

SQL ID: 9m7787camwh4m

Plan Hash: 0

begin :id := sys.dbms_transaction.local_transaction_id; end;

call count cpu elapsed disk query current rows

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

Parse 4 0.00 0.00 0 0 0 0

Execute 4 0.00 0.00 0 0 0 4

Fetch 0 0.00 0.00 0 0 0 0

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

total 8 0.00 0.00 0 0 0 4

Misses in library cache during parse: 0

Optimizer mode: ALL_ROWS

Parsing user id: 85

Elapsed times include waiting on following events:

Event waited on Times Max. Wait Total Waited

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

SQL*Net message to client 4 0.00 0.00

SQL*Net message from client 4 60.12 72.13

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

SQL ID: 5x323vaz5nuu4

Plan Hash: 0

alter session set events '10046 trace name context off'

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 0 0.00 0.00 0 0 0 0

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

total 2 0.00 0.00 0 0 0 0

Misses in library cache during parse: 0

Parsing user id: 85

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

SQL ID: cf06fwacdmgfk

Plan Hash: 1388734953

select 'x'

from

dual

call count cpu elapsed disk query current rows

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

Parse 2 0.00 0.00 0 0 0 0

Execute 2 0.00 0.00 0 0 0 0

Fetch 2 0.00 0.00 0 0 0 2

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

total 6 0.00 0.00 0 0 0 2

Misses in library cache during parse: 0

Optimizer mode: ALL_ROWS

Parsing user id: 85

Rows Row Source Operation

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

1 FAST DUAL (cr=0 pr=0 pw=0 time=0 us cost=2 size=0 card=1)

Elapsed times include waiting on following events:

Event waited on Times Max. Wait Total Waited

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

SQL*Net message to client 5 0.00 0.00

SQL*Net message from client 5 0.01 0.02

rdbms ipc reply 3 0.00 0.00

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

OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS

call count cpu elapsed disk query current rows

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

Parse 8 0.00 0.00 0 0 0 0

Execute 8 0.00 0.00 0 0 0 4

Fetch 4 0.00 0.00 0 11 0 109

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

total 20 0.00 0.00 0 11 0 113

Misses in library cache during parse: 1

Elapsed times include waiting on following events:

Event waited on Times Max. Wait Total Waited

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

SQL*Net message to client 12 0.00 0.00

SQL*Net message from client 12 60.12 73.09

rdbms ipc reply 3 0.00 0.00

Disk file operations I/O 1 0.00 0.00

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

8 user SQL statements in session.

0 internal SQL statements in session.

8 SQL statements in session.

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

Trace file: rac1_ora_27998.trc

Trace file compatibility: 11.1.0.7

Sort options: prsela exeela fchela

1 session in tracefile.

8 user SQL statements in trace file.

0 internal SQL statements in trace file.

8 SQL statements in trace file.

4 unique SQL statements in trace file.

152 lines in trace file.

73 elapsed seconds in trace file.

【完】

使用10046追踪执行计划demo的更多相关文章

  1. 使用 10046 查看执行计划并读懂 trace 文件

    查看 sql 执行计划的方法有许多种, 10046 事件就是其中的一种. 与其他查看 sql 执行计划不同, 当我们遇到比较复杂的 sql 语句, 我们可以通过 10046 跟踪 sql 得到执行计划 ...

  2. 使用awrsqrpt.sql查看执行计划demo

    SQL> @?/rdbms/admin/awrsqrpt.sql Current Instance ~~~~~~~~~~~~~~~~ DB Id DB Name Inst Num Instanc ...

  3. oracle执行计划(二)----如何查看执行计划

    目录: (一)六种执行计划  (1)explain plan for  (2)set autotrace on  (3)statistics_level=all  (4)dbms_xplan.disp ...

  4. SQL Tuning 基础概述03 - 使用sql_trace和10046事件跟踪执行计划

    1.使用sql_trace跟踪执行计划 1.1 当前session跟踪: alter session set sql_trace = true; //开始sql_trace alter session ...

  5. 通过10046 event来获取真实的执行计划

    获取SQL执行计划的方式有很多,但是某些时候获取的SQL执行计划并不是准确的,只有在SQL真实执行之后获取到的SQL PLAN才是真实准确的,其他方式(如,explain plan)获取到的执行计划都 ...

  6. Oracle数据库查看执行计划

    基于ORACLE的应用系统很多性能问题,是由应用系统SQL性能低劣引起的,所以,SQL的性能优化很重要,分析与优化SQL的性能我们一般通过查看该SQL的执行计划,本文就如何看懂执行计划,以及如何通过分 ...

  7. Oracle中获取执行计划的几种方法分析

    以下是对Oracle中获取执行计划的几种方法进行了详细的分析介绍,需要的朋友可以参考下     1. 预估执行计划 - Explain PlanExplain plan以SQL语句作为输入,得到这条S ...

  8. ORACLE数据库查看执行计划的方法

    一.什么是执行计划(explain plan) 执行计划:一条查询语句在ORACLE中的执行过程或访问路径的描述. 二.如何查看执行计划 1: 在PL/SQL下按F5查看执行计划.第三方工具toad等 ...

  9. Oracle 课程五之优化器和执行计划

    课程目标 完成本课程的学习后,您应该能够: •优化器的作用 •优化器的类型 •优化器的优化步骤 •扫描的基本类型 •表连接的执行计划 •其他运算方式的执行计划 •如何看执行计划顺序 •如何获取执行计划 ...

随机推荐

  1. J-CUBE Appears at AVATAR Xprize at Geneva 2019

    2019年5月27日,瑞士日内瓦,Avatar Xprize发布会隆重举行.非常荣幸的是,J-CUBE也受邀参加此次大会. 关于Avatar Xprize项目的介绍 https://avatar.xp ...

  2. xml 3 字节的 UTF-8 序列的字节 3 无效

    今天在eclipse中编写**.xml文件时,注释中的中文被eclipse识别到错误:3 字节的 UTF-8 序列的字节 3 无效,曾多次遇到该问题,问题的根源是: The cause of this ...

  3. nginx的rtmp搭建流媒体服务器实现直播流

    最近自己搞了一个用nginx的rtmp来搭建流媒体服务器,从而实现直播的过程,参考了网上很多资料,有些资料对于初学者来说比较难以理解,在此将我搭建的过程记录下来,分享给大家. 1.下载nginx-rt ...

  4. QT+FFMPEG+SDL2.0实现视频播放

    开发环境:MinGW+QT5.9+FFMPEG20190212+SDL2.0.9 一.开发环境搭建 (1)下载工具 在https://ffmpeg.zeranoe.com/builds/下载对应版本. ...

  5. spark 更改日志输出级别

    package com.ideal.test import org.apache.spark.{SparkConf, SparkContext} import org.apache.log4j.{Le ...

  6. 常用的sublime text 3插件

    原文出自:peter_zhou(晴空)https://www.cnblogs.com/qingkong/ All Autocomplete Sublime Text 默认的 Autocomplete ...

  7. webx入门

  8. 利用MySQL存储过程批量插入100W条测试数据

    DROP PROCEDURE IF EXISTS insert_batch; CREATE PROCEDURE insert_batch() BEGIN ; loopname:LOOP '); ; T ...

  9. vue css module

    步骤 module <style> -> <style module> class='header' -> :class='$style.header' <t ...

  10. gym101480

    A. ASCII Addition 模拟 #include <iostream> #include <sstream> #include <algorithm> # ...