动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息



本月文章推荐
.Oracle 10G 最佳20位新特性:可移.
.Oracle操作图片.
.安装Ora9i_9204要用到的补丁,刚.
.Oracle 816中如何启动Enterprise.
.Oracle数据库中SQL语句性能调整原.
.Oracle 对 Linux 的策略是什么?.
.Oracle10g的UNDO_RETENTION自动化.
.Oracle9i初始化参数中文说明(3).
.简化对数据库的访问.
.Oracle 10g中利用哈希函数提高查.
.通过LEI技术实现NOTES与SQL2000数.
.连接oracle10g免安装客户端解决办.
.研究生管理信息系统的开发流程三.
.Oracle数据库文件移动.
.从Oracle数据库到SQL Server数据.
.如何从一个大tgz包中解压出某个文.
.Oracle RAC on Veritas DBE/AC(S.
.刪除一個拥有大量资料的栏位.
.Oracle 9i 在 Red Hat Enterpris.
.技术笔记-Forms的错误控制.

了解raw trace文件的各项内容

发表日期:2008-2-9 |



  今天浏览metalink,看到这篇Interpreting Raw SQL_TRACE,比较老的一篇文章了,但是确实很有用,所以决定大略翻译一下吧。
  
  我们知道有几种方法可以得到一个SQL语句执行时后台的trace文件,一个是用SQL_TRACE,一个是用DBMS_SUPPORT包或者DBMS_SYSTEM包,还有一种就是直接使用10046 event。
  
  使用10046 event的方法大致如下:
  
  alter session set events '10046 trace name context forever, level 12';
  
  your sql statement...
  
  alter session set events '10046 trace name context off';
  
  其中的level有1,4,8,12几个选项,其中1相当于设置SQL_TRACE=TRUE之后的结果,4包括1的结果和绑定变量的实际值,8包括1的结果和等待事件的情况,12则同时包含1的结果,绑定变量的实际值和等待事件情况,所以可以说level 12是最为具体的trace了。
  
  同时我们也知道,对于trace结果,Oracle提供了tkprof实用程序用来格式化trace文件,提供一份更轻易读懂的trace结果。
  
  那么为什么还要直接读取trace文件呢?最重要的是tkprof的结果是不包含绑定变量值的,同时也不包括真正的SQL执行顺序,而trace文件中我们则可以看到按照时间排列的parse,binds,executes,fetch等等,这在某西场合下是很有用处的。还有就是,假如你能够直接读取这些让人看得眼晕的trace,是不是会有一种很爽,很大师的感觉:-)
  
  当然假如我们要根据一些标准(比如CPU时长,磁盘读取量等)进行trace中的SQL排序,那么tkprof是我们唯一的选择,可以参看coolyl(丫现在迷恋WOW,已经不理朝政了:-D)的Tkprof工具介绍和分析。
  
  下面是metalink中的这篇文章的大体翻译,大部分名词用英文反而更好,就不强加翻译了,相信大家都看得懂。当然也是比较懒的原因:-)
  
  文本总结了trace结果原始输出文件中的内容。
  
  ----------------------------------------------------------------------------
  APPNAME mod='%s' mh=%lu act='%s' ah=%lu
  ----------------------------------------------------------------------------
  
  APPNAME:Application name setting。在Oracle 7.2和以上版本中出现。这个名称可以由DBMS_APPLICATION_INFO包来设定。
  mod:Module name
  mh:Module hash value
  act:Action
  ah:Action hash value
  
  比如:APPNAME mod='SQL*Plus' mh=3669949024 act='' ah=4029777240
  
  ----------------------------------------------------------------------------
  PARSING IN CURSOR # len=X dep=X uid=X oct=X lid=X tim=X hv=X ad='X'
  statement....
  END OF STMT
  ----------------------------------------------------------------------------
  
  CURSOR:Cursor number
  len :Length of SQL statement,SQL语句的长度
  dep :Recursive depth of the cursor,当前SQL语句的递规深度,假如为0则表示是用户提交的SQL,为1则是由于用户SQL而导致Oracle后台自己执行的SQL,为2则是由1级SQL继续诱发的下一级SQL。
  uid :Schema user id of parsing user
  oct :Oracle command type.
  lid :Privilege user id.
  tim :Timestamp。在Oracle9i之前单位是1/100秒,9i则是1/1,000,000秒。利用这个值可以计算一个SQL执行了到底多长时间。这个值就是当前行被写入trace文件时数据库V$TIMER视图的值。
  hv :Hash id.
  ad :SQLTEXT address,SQLTEXT的地址,跟V$SQLAREA和V$SQLTEXT视图中的ADDRESS字段值相等。
  statement :The actual SQL statement being parsed.
  
  ----------------------------------------------------------------------------
  PARSE ERROR #%d:len=%ld dep=%d uid=%ld oct=%d lid=%ld tim=%lu err=%d
  statement....
  ----------------------------------------------------------------------------
  
  PARSE ERROR :在Oracle 7.2以上版本中解析的错误会写入trace文件中。

  len :Length of SQL statement.
  dep :Recursive depth of the statement
  uid :User id.
  oct :Oracle command type (if known).
  lid :Privilege user id.
  tim :Timestamp.
  err :Oracle error code (e.g. ORA-XXXXX) reported
  statement :The SQL statement that errored.
  
  ----------------------------------------------------------------------------
  PARSE #:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=4,tim=0
  EXEC #:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=4,tim=0
  FETCH #:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=4,tim=0
  UNMAP #:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=4,tim=0
  ----------------------------------------------------------------------------
  
  PARSE :Parse a statement. 解析一个SQL
  EXEC :Execute a pre-parsed statement. 执行已经解析完毕的SQL
  FETCH :Fetch rows from a cursor. 从游标中得到数据,通常指select返回记录
  UNMAP :假如游标使用了临时表(temporary table), 当游标关闭的时候将会看到UNMAP
  c :CPU time (100th's of a second in Oracle7 ,8 and 9).
  e :Elapsed time (100th's of a second Oracle7, 8. Microseconds in Oracle 9 onwards).
  p :Number of physical reads.
  cr :Number of buffers retrieved for CR reads.
  cu :Number of buffers retrieved in current mode.
  mis :Cursor missed in the cache.
  r :Number of rows processed.
  dep :Recursive call depth (0 = user SQL, >0 = recursive).
  og :Optimizer goal: 1=All_Rows, 2=First_Rows, 3=Rule, 4=Choose
  tim :Timestamp (large number in 100ths of a second).
  
  比如:FETCH #2:c=0,e=106,p=0,cr=3,cu=0,mis=0,r=1,dep=1,og=4,tim=6005498548671
  
  ----------------------------------------------------------------------------
  ERROR #%d:err=%d tim=%lu
  ----------------------------------------------------------------------------
  
  执行或者fetch之后出现的SQL Error
  err :Oracle error code (e.g. ORA-XXXXX) at the top of the stack.
  tim :Timestamp.
  
  ----------------------------------------------------------------------------
  STAT # id=N cnt=0 [pid=0 pos=0 obj=0 op='SORT AGGREGATE ']
  ----------------------------------------------------------------------------
  
  CURSOR的执行计划.
  CURSOR :Cursor which the statistics apply to.
  id :Line of the eXPlain plan which the row count applies to (从1开始).
  cnt :Number of rows for this row source.
  pid :Parent id of this row source.
  pos :Position in explain plan.
  obj :Object id of row source (if this is a base object).
  op : The row source Access operation.
  
  比如:
  
  STAT #2 id=2 cnt=0 pid=1 pos=1 obj=510 op='TABLE ACCESS BY INDEX ROWID OBJECT_USAGE (cr=2 r=0 w=0 time=83 us)'
  STAT #2 id=3 cnt=1 pid=2 pos=1 obj=511 op='INDEX RANGE SCAN I_STATS_OBJ# (cr=1 r=0 w=0 time=43 us)'
  
  ----------------------------------------------------------------------------
  XCTEND rlbk=%d rd_only=%d
  ----------------------------------------------------------------------------
  
  XCTEND是事务结束的标志.
  rlbk :1 if a rollback was performed,
0 if no rollback (commit).
  rd_only :1 if transaction was read only, 0 if changes occurred.
  
  ----------------------------------------------------------------------------
  BINDS #%d:
  bind 0: dty=2 mxl=22(22) mal=00 scl=00 pre=00 oacflg=03 oacfl2=0 size=24 offset=0
  bfp=02fedb44 bln=22 avl=00 flg=05
  value=10
  ----------------------------------------------------------------------------
  
  BIND :Variables bound to a cursor.
  bind N :The bind position being bound.
  dty :Data type.
  mxl :Maximum length of the bind variable (private max len in paren).
  mal :Array length.
  scl :Scale.
  pre :Precision.
  oacflg :Special flag indicating bind options
  oacflg2 :Continuation of oacflg
  size :Amount of memory to be allocated for this chunk
  offset :Offset into this chunk for this bind buffer
  bfp :Bind address.
  bln :Bind buffer length.
  avl :Actual value length (array length too).
  flg :Special flag indicating bind status
  value :The actual value of the bind variable.
  
  比如:
  
  BINDS #4:
  bind 0: dty=2 mxl=22(22) mal=00 scl=
上一篇:oracle的数据分页查询 人气:668
下一篇:oracle数据库的优化-关于rownum操作 人气:574
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-24 Sablog-X v2.0 预览版
2008-7-24 帝国备份王EmpireBak 2008 正式版
2008-7-24 网趣网上购物系统时尚版 v8.2
2008-7-24 纵横B2B电子商务系统XYECS!B2B v
2008-7-24 e路小说小偷 v1.2.0723
2008-7-24 凌风美女图片站程序 v2.2
2008-7-24 TOM15电影收索程序
2008-7-24 清风信息自动采集生成系统 v1.0
2008-7-24 QQ邮箱编辑器 v1.0 (小小菜刀ASP
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号