10046可看到语句的执行过程,包括各种步骤、关联方式、分别在哪些步骤耗时多少、有哪些等待事件等。
分三个步骤:解析、执行和获取
解析:
PARSING IN CURSOR #140186891763128 len=84 dep=0 uid=0 oct=3 lid=0 tim=1542789588408762 hv=2629212467 ad='9b65c8d8' sqlid='d2knts2fbd69m'
select count(1)
from dba_objects a,scott.tb_test2 b
where a.object_id = b.object_id
END OF STMT
PARSE #140186891763128:c=14309,e=14309,p=0,cr=12,cu=0,mis=1,r=0,dep=0,og=1,plh=2135238665,tim=1542789588408759
PARSING IN CURSOR参数:
len:SQL语句长度
dep:递归调用深度
uid:解析用户标识符,对应dba_users.user_id、v$sql.parsing_user_id
oct:Oracle命令类型. 对应v$sql.command_type、v$session.command. create table:1 delete:7 select:3 insert:2 update:6 truncate:85 drop table:12
lid:解析模式标识符,对应dba_users.user_id、v$sql.parsing_schema_id
tim:Timestamp.当前行写入文件时v$timer中的值
hv:sql hash value,对应v$sql.hash_value
ad:sql address, 对应v$sql.address
sqlid:sql id,对应v$sql.sql_id
PARSE参数:
c:CPU开销。9i之前厘秒,9i之后是微秒
e:运行时间。9i之前厘秒,9i之后是微秒
p:物理读次数
cr:逻辑读的数据块
cu:current模式读取的数据块
mis:1:硬解析 0:软解析
r:处理的行数
dep:递归调用深度
og:优化器模式: 1=All_Rows, 2=First_Rows, 3=Rule, 4=Choose
tim:时间戳
plh:plan hash value,执行计划的hash值,对应v$sql_plan.plan_hash_value、v$sql_plan_statistics_all.plan_hash_value、v$sqlstats.plan_hash_value
解析出错时:
PARSE ERROR #140092551821528:len=30 dep=0 uid=0 oct=3 lid=0 tim=1542780378216064 err=942
select count(1) from scott.tb
PARSE ERROR参数:
len: SQL语句长度
dep: 递归调用深度
uid: 解析用户标识符,对应dba_users.user_id、v$sql.parsing_user_id
oct: Oracle命令类型. 对应v$sql.command_type、v$session.command
lid: 解析模式标识符,对应dba_users.user_id、v$sql.parsing_schema_id
tim:Timestamp.
err:Oracle error code (e.g. ORA-XXXXX) reported
执行和获取:
EXEC #[CURSOR]:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=2295886755,tim=0
FETCH #[CURSOR]:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=2295886755,tim=0
参数与PARSE参数相同
XCTEND rlbk=0, rd_only=0, tim=1542780757243972
XCTEND参数:
rlbk:1:rollback, 0:commit.
rd_only :1:只读事务, 0:事务中有数据被修改.
tim:时间戳
STAT #[CURSOR] id=1 cnt=1 pid=0 pos=1 obj=0 op='SORT AGGREGATE (cr=6 pr=0 pw=0 time=483 us)'
STAT #[CURSOR] id=2 cnt=14 pid=1 pos=1 obj=75510 op='TABLE ACCESS FULL EMP (cr=6 pr=0 pw=0 time=432 us cost=2 size=0 card=14)'
STAT参数:
id:执行计划中指示行数据源顺序的标识符。通常一个执行计划的第一条STAT的id=1
cnt:当前行源返回的行数
pid:当前行源的父结点id
pos:Position in explain plan.
obj:行源的对象id,对应于dba_objects.object_id、v$sql_plan.object#
op:执行的操作,如表访问、索引扫描、排序、联合等,对应v$sql_plan.operation
STAT执行统计参数:
cr:Consistent reads.逻辑读
pr:Physical reads.物理读
pw:Physical writes.物理写
time:消耗的时间,微秒
cost:CBO估计的成本
size:估计的数据量,单位为字节。基于对象的统计信息
card:估计的基数,基于对象的统计信息
WAIT #140092549877616: nam='Disk file operations I/O' ela= 40 FileOperation=2 fileno=1 filetype=2 obj#=106 tim=1542780935083885
WAIT #140092549877616: nam='db file sequential read' ela= 8945 file#=1 block#=69315 blocks=1 obj#=106 tim=1542780935092868
WAIT #140092549877616: nam='db file sequential read' ela= 8859 file#=1 block#=69378 blocks=1 obj#=104 tim=1542780935101864
WAIT参数:
nam:等待事件名称
ela:运行时间,微秒
p1:等待事件的第一个参数
p2:等待事件的第二个参数
p3:等待事件的第三个参数
obj#:对象编号,也就是dba_object.object_id
tim:时间戳
BINDS #140092551821528:
Bind#0
oacdty=02 mxl=22(22) mxlc=00 mal=00 scl=00 pre=00
oacflg=03 fl2=1000000 frm=00 csi=00 siz=24 off=0
kxsbbbfp=7f69d6c94c20 bln=22 avl=02 flg=05
value=20
BINDS参数:
Bind#N:绑定变量被使用的位置
oacdty: 绑定变量数据类型
mxl:绑定变量值的最大长度
mxlc :未知
mal:数组长度
scl:比例.
pre:精度.
oacflg:指示绑定选项的特殊标志
fl2:oacflg的第二部分
frm:未知
csi:数据库字符集或国际字符集的字符集标识符
siz:给该chunk分配的内存总量
off:该绑定缓冲区在chunk中的偏移
kxsbbbfp: 绑定地址
bln:绑定缓冲区长度
avl:实际值的长度
flg:绑定变量状态
value:绑定变量值
数据类型代码:
1 varchar2/nvarchar2
2 number
12 date
96 char/nchar
112 clob/nclob
113 blob
180 timestamp
常见字符集和标识符:
1 US7ASCII
31 WE8ISO8859P1
46 WE8ISO8859P15
170 EE8MSWIN1250
178 WE8MSWIN1252
871 UTF8
873 AL32UTF8
2000 AL16UTF16
CLOSE #140092551821528:c=15,e=15,dep=0,type=0,tim=1542780378208132
参数:
c:CPU开销。9i之前厘秒,9i之后是微秒
e:运行时间。9i之前厘秒,9i之后是微秒
dep:游标递归深度
type:type of close operation
tim:Timestamp 时间戳
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。