sql_trace跟踪文件中名词简写说明

本文深入探讨了SQL_TRACE工具的使用方法,包括文件跟踪的分类、跟踪文件的位置、计时信息以及TKPROF工具的使用。通过设置SQL_TRACE参数、生成启用脚本和设置计时标志,可以有效地诊断数据库问题并生成易于理解的跟踪文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    SQL_trace是oracle提供的一个非常好的跟踪工具,主要用来检查数据库的异常情况,通过跟踪数据库的活动,找到有问题的语句。
一、概述:
    SQL_TRACE是Oracle的一个非常强大的工具。打开SQL_TRACE就可以逐步捕获任何一个会话的数据库活动,或者捕获整个数据库的活动,并将数据库活动记录成跟踪文件。每次使用完之后需要关闭跟踪,否则会降低系统的性能。
    SQL_TRACE可以帮助诊断许多问题,其中包括:
二、用法:
   1、文件跟踪的分类:
      跟踪DBA可以采用两种方式进行跟踪:
      a.跟踪整个数据库实例。
     只需要简单的修改参数文件(pfile/spfile)参数 SQL_TRACE = TRUE ,然后重新启动数据库即可。在全局启用SQL_TRACE会导致所有进程的活动被跟踪,包括后台进程及所有用户进程,这样也会数据库导致性能下降比较明显。
      b.会话级跟踪。
     SQL_TRACE的通常使用方式是仅跟踪一个会话。被跟踪的会话可以是您自己的,也可以是其它用户的会话。如果是自己的会话,只需要在SQL*PLUS中运行一下命令即可:
      SQL> alter session set sql_trace = true;
      类似的如果取消对会话的跟踪,运行一下命令:
      SQL> alter session set sql_trace = false;
     
      如果需要跟踪一个特定的会话,首先需要获取会话的SID和Serial#,这些信息可以在视图V$SESSION中获得,一旦知道了这两个参数,就可以运行一下命令:
      SQL> execute SYS.dbms_system.set_sql_trace_in_session(13,9,true);
      同样也可以使用这个过程关闭会话跟踪:
     SQL> execute SYS.dbms_system.set_sql_trace_in_session(13,9,false);
    
    可以批量生成启用脚本语句:
     SELECT username,
       sid,
       serial#,
       program,
       'exec sys.dbms_system.set_sql_trace_in_session(' || sid || ',' ||
       serial# || ',true);'
  FROM v$session a
 WHERE a.username = 'SPCS_WMS_SH'
   AND module = 'JDBC Thin Client';

  2、跟踪文件的位置:
     一旦为会话激活了SQL_TRACE,ORACLE就会在udump管理区创建跟踪文件,文件的目标位置由参数user_dump_dest来确定。每个操作都不会覆盖原来的文件,新的跟踪记录将会被追加到文件末尾。通常情况下,可以通过以下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;
 
 3、计时信息:
    为了最大限度的利用跟踪文件,应该打开计时标志,通过参数TIMED_STATISTICTS=TRUE进行设置,这样可以对每个SQL语句的执行时间等进行记录,这个功能对系统性能的负担很小。
    打开会话的计时信息:
    SQL> alter session set timed_statistics = true ;
    打开数据库系统的计时信息
    SQL> alter system set timed_statistics = true ;
 
 4、TKPROF:
    通过前三步的设置已经知道如何生成SQL跟踪文件了,ORACLE生成的跟踪文件阅读起来很困难(也就是易读性很差)。ORACLE提供了一个格式化跟踪文件的工具 - TKPROF( Transient Kernel Profiler ),通过这个工具能将SQL文件转化为分析人员容易理解的格式。
   
    一般TKPROF工具的使用的简单方法,只用到了两个关键字:跟踪文件名和输出文件名 (TKPROF的具体请参阅其他资料):
    TKPROF
   
   通过设置tkprof的关键字[EXPLAIN = ],也可以在跟踪文件中增加SQL语句的执行计划:
  C:>tkprof D:oracleadminora9iudumpora9i_ora_2060.trc d:report.txt explain=test/test;  
  
跟踪原文件内容:
PARSING IN CURSOR #140526285366352 len=34 dep=1 uid=90 oct=3 lid=90 tim=1417657718956666 hv=1291129642 ad='ff3fd770' sqlid='37cvw956ga4ta'
SELECT PROJECT_ID FROM WM_IN_ORDER
END OF STMT
PARSE #140526285366352:c=0,e=78,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=1,plh=3568243417,tim=1417657718956664
EXEC #140526285366352:c=0,e=53,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=1,plh=3568243417,tim=1417657718956839
WAIT #140526285366352: nam='Disk file operations I/O' ela= 108 FileOperation=2 fileno=4 filetype=2 obj#=79237 tim=1417657718962499
WAIT #140526285366352: nam='direct path read' ela= 208 file number=4 first dba=8515 block cnt=5 obj#=79237 tim=1417657718962796
WAIT #140526285366352: nam='direct path read' ela= 125 file number=4 first dba=141248 block cnt=8 obj#=79237 tim=1417657718963055
FETCH #140526285366352:c=6000,e=6234,p=13,cr=4,cu=0,mis=0,r=1,dep=1,og=1,plh=3568243417,tim=1417657718963181
STAT #140526285366352 id=1 cnt=1 pid=0 pos=1 obj=79237 op='TABLE ACCESS FULL WM_IN_ORDER (cr=4 pr=13 pw=0 time=6225 us cost=2081 size=927160 card=231790)'
CLOSE #140526285366352:c=1000,e=188,dep=1,type=3,tim=1417657718963433
EXEC #140526285378960:c=7000,e=7022,p=13,cr=4,cu=0,mis=0,r=1,dep=0,og=1,plh=0,tim=1417657718963470
WAIT #140526285378960: nam='SQL*Net message to client' ela= 2 driver id=1650815232 #bytes=1 p3=0 obj#=79237 tim=1417657718963544

跟踪跟踪文件中名词简写说明:
tim--time
ela--elapsed time (微秒单位)
r---rows
cr--consistent read
obj#--object_id

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29439655/viewspace-1356086/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29439655/viewspace-1356086/

<think>好的,用户想了解“trae”和“cursor”在IT术语中的含义和用法。首先,我需要分别处理这两个词,确认它们在技术领域的常见解释。 首先,“trae”这个词看起来不太熟悉。可能在IT领域并不是一个常用术语。我需要先检查是否有拼写错误,比如是否应该是“tree”(树结构)或者“trace”(跟踪)。如果用户确实指的是“trae”,可能需要考虑是否是某个特定领域或框架中的专有名词,或者是拼写错误。例如,在西班牙语中,“trae”是动词“带来”的第三人称形式,但在IT英语中并不常见。可能需要进一步确认用户的意图,或者指出可能的拼写错误,并给出相近词汇的解释。 接下来是“cursor”。这个词在计算机科学中有明确的定义,尤其是在数据库和用户界面方面。数据库中的游标(cursor)用于遍历和操作查询结果集,而用户界面中的光标(cursor)则指屏幕上指示位置的图形符号,比如鼠标指针或文本输入时的闪烁竖线。需要详细说明这两种用法,并举例说明其应用场景,比如在SQL中使用游标逐行处理数据,或者在编程中控制光标的显示位置。 另外,根据用户提供的引用内容,他们之前接触过SQL语句,比如DELETE和SELECT,所以在解释cursor时,可以结合数据库游标的具体例子,引用已有的SQL知识,帮助用户理解。例如,引用[1]中提到了SELECT语句,可以说明游标在处理查询结果时的作用。 同时,用户可能在阅读英文资料时遇到这两个词,需要翻译和理解,如引用[2]所述的情况,所以解释时需要清晰明了,避免使用过于专业的术语,或者至少提供通俗的解释。 最后,生成相关问题,帮助用户进一步探索这两个术语的关联或深入应用,比如cursor的不同类型,或者trae可能的其他含义。确保问题覆盖可能的扩展方向,如性能优化、应用场景等。</think>### Trae 和 Cursor 的 IT 术语解析 #### 1. **Trae 的含义与用法** 在 IT 术语中,**"trae" 并非常见词汇**,可能由以下情况导致混淆: - **拼写错误**:可能是 "trace"(跟踪)的误写,例如程序调试中的函数调用跟踪(function trace)或网络数据包追踪(packet tracing)[^2]。 - **特定框架/工具**:少数开源项目(如 Traefik 反向代理的缩写)可能使用类似名称,但需结合上下文确认。 - **多语言干扰**:西班牙语中 "trae" 意为 "带来",但在 IT 英语中无直接关联。 #### 2. **Cursor 的含义与用法** **Cursor(游标/光标)** 是计算机科学中的核心概念,具体分为两类: 1. **数据库游标** 用于逐行处理查询结果集,尤其在 SQL 中。例如: ```sql DECLARE student_cursor CURSOR FOR SELECT StudentName FROM STUDENT WHERE Major = 'Computer Science'; OPEN student_cursor; FETCH NEXT FROM student_cursor; -- 逐行处理数据后关闭 CLOSE student_cursor; DEALLOCATE student_cursor; ``` 游标通过控制数据遍历实现精细化操作(如更新或删除特定行)[^1]。 2. **用户界面光标** 指屏幕上的位置指示符号,例如: - 鼠标光标(箭头、手形等) - 文本输入光标(闪烁竖线) - 编程中可通过代码控制光标行为(如终端应用中的光标移动)。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值