`
kuwoleft
  • 浏览: 1085216 次
文章分类
社区版块
存档分类
最新评论

AUTOTRACE功能

 
阅读更多

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->

当使用oracle AUTOTRACE功能时,在oracle内部实际上启动了两个会话(session)连接,一个session用于执行查询等操作,另一个session用于记录执行计划和输出最终结果等操作。

在启用AUTOTRACE之前:

SQL> select sid,serial#,username from v$session t where t.username is not null;

SID SERIAL# USERNAME

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

125 5 SYS

在启用AUTOTRACE之后:

SQL> set autotrace on;

SQL> select sid,serial#,username from v$session t where t.username is not null;

SID SERIAL# USERNAME

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

125 5 SYS

139 18 SYS

可以看到oracle建立了一个新的session.

并且这两个session由同一个进程创建:

SQL> select t.sid,t.serial#,t.username,t2.pid,t2.spid from v$session t,v$process t2 where t.paddr=t2.addr and t.username is not null;

SID SERIAL# USERNAME PID SPID

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

125 5 SYS 19 1963

139 18 SYS 19 1963

而此处的v$process.spid正是操作系统的进程号:

SQL> !ps -ef|grep 1963|grep -v grep

oracle 1963 1692 0 Apr09 ? 00:00:01 oracleorcl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

以上可知,一个进程在数据库中可能对应多个session。通过在全局启用10046事件可以得到AUTOTRACE的内部操作。使用TKPROF格式化跟踪文件,查看跟踪文件或格式化后的文件可以查看以上两个session是如何工作的(内部操作)。

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->

获取跟踪文件sql语句:

select d.value||'/'||lower(rtrim(i.instance,chr(0)))||'_ora_'||p.spid||'.trc' trace_file_name

from

(select p.spid

from sys.v$mystat m,sys.v$session s,sys.v$process p

where m.statistic#=1 and s.sid = m.sid and p.addr = s.paddr) p,

(select t.instance from sys.v$thread t,sys.v$parameter v

where v.name='thread' and (v.value=0 or t.thread#=to_number(v.value))) i,

(select value from sys.v$parameter where name= 'user_dump_dest') d;

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->

获取正在执行的 sql

select sql_text from v$sqltext a

where a.hash_value=(select sql_hash_value

from v$session b

where b.sid='&sid') --sid

order by piece asc

/

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->

来自 : 深入解析Oracle.DBA入门进阶与诊断案例

分享到:
评论

相关推荐

    oracle使用autotrace 功能

    AUTOTRACE是一个SQL*Plus工具,用于跟踪SQL的执行计划,收集执行时所耗用资源的统计信息,是SQL优化工具之一,下面给出启用AUTOTRACE 功能步骤。

    深入解析Oracle.DBA入门进阶与诊断案例

    10.1.2 Oracle 10g AUTOTRACE功能的增强 473 10.1.3 AUTOTRACE功能的内部操作 475 10.1.4 使用AUTOTRACE功能辅助SQL优化 477 10.2 获取SQL执行计划的方法 479 10.2.1 通过V$SQL_PLAN获得执行计划 479 ...

    深入解析OracleDBA入门进阶与诊断案例 3/4

     10.1 使用AUTOTRACE功能辅助SQL优化   10.2 获取SQL执行计划的方法   10.3 捕获问题SQL解决过度CPU消耗问题   10.4 使用SQL_TRACE/10046事件进行数据库诊断   10.5 使用物化视图进行翻页性能调整  ...

    深入解析OracleDBA入门进阶与诊断案例 2/4

     10.1 使用AUTOTRACE功能辅助SQL优化   10.2 获取SQL执行计划的方法   10.3 捕获问题SQL解决过度CPU消耗问题   10.4 使用SQL_TRACE/10046事件进行数据库诊断   10.5 使用物化视图进行翻页性能调整  ...

    深入解析OracleDBA入门进阶与诊断案例 4/4

     10.1 使用AUTOTRACE功能辅助SQL优化   10.2 获取SQL执行计划的方法   10.3 捕获问题SQL解决过度CPU消耗问题   10.4 使用SQL_TRACE/10046事件进行数据库诊断   10.5 使用物化视图进行翻页性能调整  ...

    autotrace:位图到矢量图形转换器

    AutoTrace是用于将位图转换为矢量图形的实用程序。 特征 追踪轮廓和中线 减少颜色和去除斑点 支持很多输入输出格式 执照 该程序可以在GNU通用公共许可证下使用。 输入和输出功能( input-*.[ch]和output-*.[ch] )...

    autotrace:运行一个过程,并在一个终端窗口中为您提供输出以及该过程中的其他遥测

    自动追踪 运行一个过程,并在一个终端窗口中为您提供输出以及该过程中的其他遥测。 这是我通过使用以下命令查看strace和... 如果您需要其他功能,请提高PR 安装 # Requires: # python (2 or 3) # pip pip install au

    dbnmatlab代码-Autotrace:一组用于分析超声图像中舌表面轮廓的工具

    ##较早且功能齐全的AutoTrace系统需要Matlab以及一些与GTK +相关的python依赖项。 由于有GTK +,尽管可以使用MacPorts()将其安装在Mac OS X上,但该版本最好在Linux上运行。 ##(正在开发中)目前正在开发不包含...

    高级SQL优化(三)

    SQL*PLUS下使用AUTOTRACE1.AUTOTRACE简介AUTOTRACE是SQL*Plus的一项功能,其作用是自动跟踪SQL语句,为SQL语句生成一个执行计划并且提供与该语句的处理有关的统计信息。SQL*PlusAUTOTRACE可以用来替代SQLTrace使用,...

    python 自动轨迹绘制的实例代码

    自动化思维,数据和功能分开处理,用数据驱动程序自动运行 接口化设计,数据与程序的对接方式要清晰明了 二维数据应用,应用维度组织数据,二维数据最常用 代码 # AutoTrace.py import turtle as t t.title(自动...

    sslkeylog:一个以NSS密钥日志格式记录SSL会话密钥的Ruby库

    注意:此版本的库是功能原型。 将来可能会更改实现。安装该gem使用C扩展名从Ruby OpenSSL::SSL::SSLSocket对象提取数据。 这意味着必须使用与编译Ruby解释器相同的OpenSSL标头来构建Gem。 查找include目录的逻辑...

    Oracle中使用DBMS_XPLAN处理执行计划详解

    在以前查看SQL执行计划的时候,我都是使用set autotrace命令,不过现在看来,DBMS_XPLAN包给出了更加简化的获取和显示计划的方式。 这5个函数分别对应不同的显示计划的方式,DBMS_XPLAN包不仅可以获取解释计划,它还...

    Oracle优化常用概念.pptx

    柱状图是 Oracle 的一项功能,展示了列上的数据分布,大致可理解为列上每个值的记录数,即数据倾斜度。可以使用 `User_tab_statistics`、`User_ind_statistics` 和 `User_tab_col_statistics` 等视图查看统计信息。 ...

    Toad 使用快速入门

    可以查看SQL语句的执行情况:通过下方的AutoTrace窗口 ,看到SQL语句的实际执行结果和执行效率。 支持历史SQL(F8) :可以方便的查询以前执行过的SQL,不用反复重新输入。  可以执行匿名块,存储过程,从...

    Oracle数据库管理员技术指南

    8.5.5 使用 AUTOTRACE 获得 SQL 语句 执行计划和统计数据 8.6 优化回退段 8.6.1 最小化回退段争用 8.6.2 使动态扩充最小化 8.6.3 分布回退段的 I/O 8.7 优化索引 8.7.1 怎样确定和重建产生碎片的索引 8.7.2 ...

    ORACLE9i_优化设计与系统调整

    §12.8.6 AUTOTRACE 实用程序 157 第13章 数据访问方法 160 §13.1 使用索引的访问方法 161 §13.1.1 何时创建索引 161 §13.1.2 索引列和表达式的选择 161 §13.1.3 选择复合索引的主列 161 §13.1.4 要用可选择性...

Global site tag (gtag.js) - Google Analytics