永发信息网

如何做trace 每一步 每一行

答案:1  悬赏:20  手机版
解决时间 2021-11-18 15:57
如何做trace 每一步 每一行
最佳答案
AUTOTRACE是一项 SQL*Plus 功能,自动跟踪为 SQL 语句生成一个执行计划并且提供与该语句的处理有关的统计。 SQL*Plus AUTOTRACE 可以用来替代 SQL Trace 使用,AUTOTRACE 的好处是您不必设置跟踪文件的格式,并且它将自动为 SQL 语句显示执行计划。然而,AUTOTRACE 分析和执行语句;而EXPLAIN PLAN仅分析语句。 使用AUTOTRACE不会产生跟踪文件。 一、set autotrace语法及选项的说明 1、用法: SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]] OPTION 说明 SET AUTOTRACE OFF 此为默认值,即关闭Autotrace SET AUTOTRACE ON 同时输出执行结果以及统计信息和执行计划信息。 SET AUTOTRACE ON EXPLAIN 只打开执行计划报表,显示命令结果,不显示统计信息。 SET AUTOTRACE ON STATISTICS 只打开统计信息报表,显示命令结果,不显示执行计划。 SET AUTOTRACE TRACEONLY 不显示命令的执行结果,显示执行计划和统计信息,但在traceonly的后面仍然可以追加explain或者statistics,等同于set autotrace on [explain|statistics]但是不显示执行结果。 2、Autotrace执行计划的各列的涵义 ID_PLUS_EXP 每一步骤的行号 PARENT_ID_PLUS_EXP 每一步的Parent的级别号 PLAN_PLUS_EXP 实际的每步 OBJECT_NODE_PLUS_EXP Dblink或并行查询时才会用到 3、AUTOTRACE Statistics常用列解释 db block gets 从buffer cache中读取的block的数量 consistent gets 从buffer cache中读取的undo数据的block的数量 physical reads 从磁盘读取的block的数量 redo sizeDML 生成的redo的大小 sorts (memory) 在内存执行的排序量 sorts (disk 在磁盘上执行的排序量 二、使用前设置及Autotrace授权 1、任何以SQL*PLUS连接的session都可以用Autotrace,不过还是要做一些设置的,否则可能报错。 报错示例: SQL:> set autotrace on; SP2-0613: Unable to verify PLAN_TABLE format or existence SP2-0611: Error enabling EXPLAIN report SP2-0618: Cannot find the Session Identifier. Check PLUSTRACE role is enabled SP2-0611: Error enabling STATISTICS report 该错误的的主要原因是由于当前用户下没有PLAN_TABLE这张表及相应的PLUSTRACE角色权限。 2、 通过以下方法可以把Autotrace的权限授予Everyone,如果你需要限制Autotrace权限,可以把对public的授权改为对特定user的授权。 D:\oracle\ora92>sqlplus /nolog SQL> connect sys as sysdba SQL> @?\rdbms\admin\utlxplan --表已创建。 SQL> create public synonym plan_table for plan_table; --同义词已创建。 SQL> grant all on plan_table to public ; SQL> @?\sqlplus\admin\plustrce SQL> drop role plustrace; SQL> create role plustrace; SQL> grant select on v_$sesstat to plustrace; SQL> grant select on v_$statname to plustrace; SQL> grant select on v_$session to plustrace; SQL> grant plustrace to dba with admin option; SQL> set echo off DBA用户首先被授予了plustrace角色,然后我们可以把plustrace授予public;这样所有用户都将拥有plustrace角色的权限. SQL> grant plustrace to public ; 三、使用AutoTrace的功能 SQL> connect eqsp/eqsp SQL> set autotrace on SQL> set timing on SQL> set autotrace traceonly SQL> select table_name from user_tables; 已选择98行。 已用时间: 00: 00: 00.04 Execution Plan ---------------------------------------------------------- 0 SELECt STATEMENT ptimizer=CHOOSE 1 0 NESTED LOOPS 2 1 NESTED LOOPS (OUTER) 3 2 NESTED LOOPS (OUTER) 4 3 NESTED LOOPS (OUTER) 5 4 NESTED LOOPS (OUTER) 6 5 NESTED LOOPS 7 6 TABLE ACCESS (BY INDEX ROWID) OF 'OBJ$' 8 7 INDEX (RANGE SCAN) OF 'I_OBJ2' (UNIQUE) 9 6 TABLE ACCESS (CLUSTER) OF 'TAB$' 10 9 INDEX (UNIQUE SCAN) OF 'I_OBJ#' (NON-UNIQUE) 11 5 TABLE ACCESS (BY INDEX ROWID) OF 'OBJ$' 12 11 INDEX (UNIQUE SCAN) OF 'I_OBJ1' (UNIQUE) 13 4 INDEX (UNIQUE SCAN) OF 'I_OBJ1' (UNIQUE) 14 3 TABLE ACCESS (CLUSTER) OF 'USER$' 15 14 INDEX (UNIQUE SCAN) OF 'I_USER#' (NON-UNIQUE) 16 2 TABLE ACCESS (CLUSTER) OF 'SEG$' 17 16 INDEX (UNIQUE SCAN) OF 'I_FILE#_BLOCK#' (NON-UNIQUE) 18 1 TABLE ACCESS (CLUSTER) OF 'TS$' 19 18 INDEX (UNIQUE SCAN) OF 'I_TS#' (NON-UNIQUE) Statistics ---------------------------------------------------------- 0 recursive calls 0 db block gets 1389 consistent gets 0 physical reads 0 redo size 2528 bytes sent via SQL*Net to client 569 bytes received via SQL*Net from client 8 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 98 rows processed -The End-
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
大众cc4座后排杂物盒怎么拆
男方欠债女方不知道,这些钱是赌债和高利贷,
延安公交公司住房公积金缴纳了吗
乐字开头的词语有哪些
八字:壬子戊申乙卯己巳好吗?
现在如果在施放【风之障壁】的同时亚索死亡,
乳蓟怎么食用
朋友说,我这人看人没错什么意思?
缅甸红盒999香烟多少钱一条
敬和艺术阁地址在什么地方,我要处理点事!
高压155低压105算高吗
妈妈帮帮帮里面的内容是骗人的吗?
葫芦岛实验三小怎么样,每班有多少学生?实验
20岁小伙子因为失误科目三没过丢人吗。会不会
跪求 《聆听》 作文一篇 600字 文体:议论 或
推荐资讯
保险公司不经被保险人同意可私下赔付对方合法
卡牛真的好用吗
营口这个城市怎么样呀?
情侣在一起176天的说说 520个字
如何将国内的库存布料直接出口到俄罗斯斯如波
一( )土壤 填量词 括号里填什么啊?
华氏铭茶艺馆地址好找么,我有些事要过去,
英语中amisare这三个的意思是不是中文里
蜀道难中尔来四万八千岁这一时间概念的用意是
电风扇摔了一下就不转了.
常熟万达广场 明天开业吗?
德国蓝狮家用缝纫机针怎么这么贵啊
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?