`
helloyesyes
  • 浏览: 1272190 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

Oracle自带的用于抽取SQL执行细节的工具

阅读更多
介绍几个Oracle本身就带的优秀的查看SQL执行计划的工具。
1.PLAN_TABLE。PLAN_TABLE是一个表,可以用来存放解释执行计划信息。数据库刚安装的时候并没有这个表,而是需要运行$ORACLE_HOME/rdbms/admin/utlxplan.sql或者
ORACLE_HOMErdmbsutlxplan.sql来创建。创建完执行计划表之后,就可以在SQLPLUS中运行SET AUTOTRACE ON,然后再运行想要查看执行计划的SQL语句就可以了。如果只想查看执行计划,而不看具体的查询返回的数据,可以用SET AUTOTRACE TRACEONLY。这两个方法都是要求语句真正执行一遍,可能速度很慢,如果只想看ORACLE是采用什么执行计划,而不真正执行语句,可以使用explain plan命令:具体如下:
Explain plan {set statement_id='<your ID>'}
{into table <table name>}
for <SQL statement>
上面的语句运行后,会在plan_table或者指定的表中存放sql语句的执行计划。可以用下面的语句来查看执行计划:
set pagesize 9999;
select lpad(' ',2*(level-1))||operation operation,options,
object_name,position from plan_table where
statement_id='statement_id';
2.TKPROF工具
TKPROF工具用来跟踪SQL执行计划、执行细节等内容的一个工具软件。该软件对通过设置了SQL_TRACE=TRUE而生成的跟踪文件进行格式化,使之成为可以理解的文件,包括语句执行信息。查看TKPROF帮助可以单独使用该命令就可以列出这个程序的版主信息了。
SQL_TRACE可以在当前SESSION中设置:ALTER SESSION SET SQL_TRACE=TRUE,也可以在其他的会话中设置。如果想在其他的会话中设置,可以用DBMS_SYSTEM的SET_SQL_TRACE_IN_SESSION函数,也可以用DBMS_SUPPORT.START_TRACE_IN_SESSION函数。设置好之后,就可以让相应的程序运行一些语句或者正常工作,ORACLE就会在user_dump_dest下生成跟踪文件。跟踪结束后,应该结束跟踪。DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION函数提供结束跟踪功能;或者使用DBMS_SUPPORT.STOP_TRACE_IN_SESSION来结束跟踪。注意,DBMS_SUPPORT并没有默认安装,为了使用该包,需要运行/rdbms/admin/dbmssupp.sql和/rdbms/admin/prvtsupp.plb,而且这两个包的使用都应该在SYS模式下。
分享到:
评论

相关推荐

    connection_reset.rar

    解决oracle数据库发生'Connection reset by peer' or 'Connection reset'的错误 这边的数据库连接是kettle自带的h2数据库,只要有kettle就有这个数据库,目录位于data-integration\samples\db\,连接方式是 ...

    JAVA上百实例源码以及开源项目源代码

     用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用...

    java开源包1

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包11

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包2

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包3

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包6

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包5

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包10

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包4

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包8

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包7

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包9

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包101

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    Java资源包01

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    JAVA上百实例源码以及开源项目

     用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用...

Global site tag (gtag.js) - Google Analytics