`

多种方法查看Oracle SQL执行计划

阅读更多

一.在线查看执行计划表
如果PLAN_TABLE表不存在,执行$ORACLE_HOME/rdbms/admin/utlxplan.sql创建plan_table表。
1.explain plan
  for
  select * from ......
2.select * from table(DBMS_XPLAN.Display);

二.使用oracle第三方工具:
plsql developer(F5)
Toad (Ctrl+E)

三.使用SQL*PLUS:
如果PLAN_TABLE表不存在,执行$ORACLE_HOME/rdbms/admin/utlxplan.sql创建plan_table表。
如果PLUSTRACE角色不存在,执行
$ORACLE_HOME/sqlplus/admin/plustrce.sql

1.sqlplus / as sysdba
  set autotrace on;

 

关于Autotrace几个常用选项的说明:
  SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式
  SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告
  SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息
  SET AUTOTRACE ON ----------------- 包含执行计划和统计信息
  SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询


2.执行sql

四.sql trace
1.alter session set sql_trace=true;
2.执行sql
3.alter session set sql_trace=false;
4.查看相应的sql trace文件。

五.诊断事件(10046)
1.alter session set events '10046 trace name context forever,level 12';
2.执行sql
3.alter session set events '10046 trace name context off';
3.查看相应的sql trace文件。

 可利用TKPROF工具查看跟踪文件

  TKPROF是一个用于分析oracle跟踪文件并且产生一个更加清晰合理的输出结果的可执行工具。如果一个系统的执行效率比较低,一个比较好的方法是跟踪用户的会话并且使用TKPROF工具的排序功能格式化输出,从而找出有问题的SQL语句。

  TKPROF命令后面的选项及输出文件各个列的含义在这里不做详细的介绍。google一下就会有很多资料。

  下面简单描述一下TKPROF工具的使用步骤:

  1、在session级别设置sql_trace=true

  sys@ORCL>alter session set sql_trace=true;

  Session altered.

  如果要在pl/sql中对session级别设置true,可以使用dbms_system这个包:

  sys@ORCL> exec dbms_system.set_sql_trace_in_session(sid,serial#,true);

  2、指定一下生成的trace文件的名字,便于查找:

  sys@ORCL>alter session set trace file_identifier='yourname';

  3、执行SQL语句。

  4、利用TKPROF工具格式化输出的trace 文件:

  [oracle@q1test01~] $tkprof/oracle/admin/orcl/udump/orcl_ora_10266_yourname.trc/oracle/yourname.txtexplain=user/pwdaggregate=yessys=nowaits=yessort=fchela

  5、查看生成的文件再设置sql_trace=false:

  sys@ORCL>alter session set sql_trace=false;

分享到:
评论

相关推荐

    Oracle数据库的SQL语句的优化

    不同的情况,一条SQL可能有多种执行计划,但在某一时点,一定只有一种执行计划是最优的,花费时间是最少的。相信你一定会用Pl/sql Developer、Toad等工具去看一个语句的执行计划,不过你可能对Rule、Choose、First rows、...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    作者通过总结各自多年的软件开发和教学培训经验,与大家分享了掌握Oracle SQL所独有的丰富功能的技巧所在,内容涵盖SQL执行、联结、集合、分析函数、子句、事务处理等多个方面。读者可以学习到以下几个方面的技巧:...

    震撼推出超方便实用的Oracle开发工具 - Oracle SQL Handler,双语界面,智能SQL编辑器,免装Oracle客户端,能运行于Windows, 双语界面

    Oracle SQL Handler,是专为 Oracle 数据库开发人员及操作人员精心打造的一款 Oracle 客户端工具 : 超智能的SQL编辑器;超方便的表格操作(可以通过修改表格的单元格数据去更新数据库表 );多种格式的数据导出包括...

    Oracle开发工具 - Oracle SQL Handler(功能强大,超方便好用, 免装客户端, Windows / Linux)

    Oracle SQL Handler,是专为 Oracle 数据库开发人员及操作人员精心打造的一款 Oracle 客户端工具: 超智能的SQL编辑器;超方便的表格操作(可以通过修改表格的单元格数据去更新数据 库表);多种格式的数据导出包括...

    Oracle提高SQL执行效率的3种方法

    Oracle提供了多种方法在执行带有大量执行计划的复杂查询时剖析过程会拖累系统的性能,感兴趣的朋友可以了解下

    SQL Monitor for Oracle,MySQL和DB2 v2.4.3.6 中文绿色版

    原理非常简单,首先是获取所有SQL进程,方法有多种: 1.sys.sysprocesses:在SQL Server 2000就声明要被移除了,不建议使用。实际上sys.sysprocesses是用以下的dmv来映射的。 2. sp_who 3. sp_who2:跟sp_who类似...

    oracle基础教程

    2.2 SQL*Plus方式的ORACLE数据库启动和关闭 26 2.2.1 启动数据库 26 2.2.2 关闭数据库 26 2.3 svrmgrl方式的ORACLE数据库启动和关闭 28 2.3.1 启动数据库 28 2.3.2 关闭数据库 30 2.4 应用开发工具(SQL * Plus) 31...

    Oracle的优化器(Optimizer)

    Oracle在执行一个SQL之前,首先要分析一下语句的执行计划,然后再按执行计划去执行。分析语句的执行计划的工作是由优化器(Optimizer)来完成的。不同的情况,一条SQL可能有多种执行计划,但在某一时点,一定只有一种执行...

    Oracle_Database_11g完全参考手册.part2

    本书全面详细地介绍了Oracle Database 11g的强大功能,阐述了如何使用所有新增功能和工具,如何执行功能强大的SQL查询,如何编写PL/SQL和SQL*Plus语句,如何使用大对象和对象-关系数据库。通过学习本书,您可以了解...

    toad for oracle 11

    易用的集成化开发环境可方便定义查询标准,测试自动生成的 SQL 语句,浏览解释计划,查看查询结果,保存所生成的 SQL 语句或将其拷贝到编辑器中。利用TOAD Modeler,新手也可以迅速创建复杂的查询。 强大的版本...

    Oracle_Database_11g完全参考手册.part5

    本书全面详细地介绍了Oracle Database 11g的强大功能,阐述了如何使用所有新增功能和工具,如何执行功能强大的SQL查询,如何编写PL/SQL和SQL*Plus语句,如何使用大对象和对象-关系数据库。通过学习本书,您可以了解...

    青云oracle工具

    oracle 的常见第三方工具主要是:toad ,PLSQL Developer,object browser;...8.可以对共享区进行监控,了解那些是不好的SQL以及执行计划; 9.可以在“裸机”上连接数据库,也就是可以无需安装oracle客户端;

    JDBC3大数据库驱动(支持Oracle/MySQL/SqlServer)

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。本包含3大数据库驱动包Oracle,MySQL,SqlServer

    sql数据库比较工具 3.5 官方版

    1、提供方便快捷的数据库浏览,支持可视化复合条件的查询,特别是查看表中大字段,提供导出多种格式(EXCEL、xml、TXT、SQL脚本)的功能 2、快速的比较两个库之间表、视图、存储过程、函数和触发器的不同,并可以...

    sqltools汉化版

    sqltools2.0是重量轻和健壮的ORACLE数据库的前端,它提供了一个强大的文本编辑器,一个sql控制台,对象浏览器和一些有用的工具,软件占用空间小,速度运行快,不需要安装。本次小编提供的是sqltools深度命令集成版,...

    2021 云和恩墨大讲堂PPT汇总(50份).zip

    Oracle数据库SQL执行计划的取得和解析 11gR2频繁遭遇Checkpoint incompelte 12C_19C统计信息最佳实践 并行不悖 - Oracle数据库的并行执行 抽丝剥茧_一起有关新冠病毒疫情的勒索病毒案例 从内存故障到CPU过高Oracle...

Global site tag (gtag.js) - Google Analytics