当前位置:大问百书>百科问答>如何启用sqlplus的AutoTrace来自功能

如何启用sqlplus的AutoTrace来自功能

2024-10-04 09:59:54 编辑:zane 浏览量:597

如何启用sqlplus的AutoTrace来自功能

的有关信息介绍如下:

如何启用sqlplus的AutoTrace来自功能

兴干抓AUTOTRACE是一项SQL*Plus功能,自动跟踪为SQL语句生成一个执行计划并且提供与该语句的赵依即煤蒸款处理有关的统计。

SQL*PlusAUTOTRACE可以用来替代SQLTrace使用,AUTOTRACE的好处是您不必设置跟踪文件的格式,并且它将自动为SQL语句显示执行计划。然而,AUTOTRACE分析和执行语句;而EXPLAINPLAN仅分析语句。

使用AUTOTRACE不胡景包须袁需束要无鱼持会产生跟踪文件。

一、setautotrace语法及选威曾粒走项的说明

1、用法:SETAUTOT[RACE]{OFF|ON|TRACE[ONLY]}[EXP[LAIN]][STAT[ISTICS]]

OPTION说明

SETAUTOTRACE乙盾经八OFF此为默认值,即关闭Autotrace

SETAUTOTRACEON同时输出执行结果以及统计信息和执行计划信息。

SETAUTOTRACEONEXPLAIN只打开执行计划报表,显示命令结果,不棉损黄显示统计信息。

SETAUTOTRACEONSTATIS赵反停量比可边蛋TICS只打开统计信息报表,显示命令结果,不显示执行计划。

SETAUTOTRAC商然反油微如关配列ETRACEONLY不显示命求扩最官烈皇病快答令的执行结果,显示执行计划和统计信息,但在traceonly的后面仍然可以追加explain或者statistics,等同于setautotraceon[explain|statistics]但是不显示执行结背龙果。

2、Autotrace执行计划的各列的涵义

ID_PLUS_EXP每一步骤的行号

PARENT武_ID_PLUS_EXP每一步的Parent的级别号

PL球也AN_PLUS_EXP实际的每步

OBJECT_NODE_P微位生岁弱之帝更本染LUS_EXPDblink或并房怎单呼觉滑训斤磁的沉行查询时才会用到

3、AUTOT族才责参金提景工何RACEStatistics常用列解释

dbblockg别古命毫抓联类境ets从buffercache中读取的block的数量

consistentgets从bufferca承面成纪肉固岁友节che中读取的undo数据的block的数量

physicalreads从蒸料磁盘读取的block的数量

redosizeDML生成的redo的大小

sorts(memory)在内存执行的排序量

sorts(disk)在磁盘上执行的排序量

二、使用前设置及Autotrace授权

1、任何以SQL*PLUS连接的session都可以用Autotrace,不过还是要做一些设置的,否则可能报错。

报错示例:

SQL:>setautotraceon;

SP2-0613:UnabletoverifyPLAN_TABLEformatorexistence

SP2-0611:ErrorenablingEXPLAINreport

SP2-0618:CannotfindtheSessionIdentifier.CheckPLUSTRACEroleisenabled

SP2-0611:ErrorenablingSTATISTICSreport

该错误的的主要原因是由于当前用户下没有PLAN_TABLE这张表及相应的PLUSTRACE角色权限。

2、通过以下方法可以把Autotrace的权限授予Everyone,如果你需要限制Autotrace权限,可以把对public的授权改为对特定user的授权。

D:\oracle\ora92>sqlplus/nolog

SQL>connectsysassysdba

SQL>@?\rdbms\admin\utlxplan--表已创建。

SQL>createpublicsynonymplan_tableforplan_table;--同义词已创建。

SQL>grantallonplan_tabletopublic;

SQL>@?\sqlplus\admin\plustrce

SQL>droproleplustrace;

SQL>createroleplustrace;

SQL>grantselectonv_$sesstattoplustrace;

SQL>grantselectonv_$statnametoplustrace;

SQL>grantselectonv_$sessiontoplustrace;

SQL>grantplustracetodbawithadminoption;

SQL>setechooff

DBA用户首先被授予了plustrace角色,然后我们可以把plustrace授予public;这样所有用户都将拥有plustrace角色的权限.

SQL>grantplustracetopublic;

三、使用AutoTrace的功能

SQL>connecteqsp/eqsp

SQL>setautotraceon

SQL>settimingon

SQL>setautotracetraceonly

SQL>selecttable_namefromuser_tables;

已选择98行。

已用时间:00:00:00.04

ExecutionPlan

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

0SELECTSTATEMENTptimizer=CHOOSE

10NESTEDLOOPS

21NESTEDLOOPS(OUTER)

32NESTEDLOOPS(OUTER)

43NESTEDLOOPS(OUTER)

54NESTEDLOOPS(OUTER)

65NESTEDLOOPS

76TABLEACCESS(BYINDEXROWID)OF'OBJ$'

87INDEX(RANGESCAN)OF'I_OBJ2'(UNIQUE)

96TABLEACCESS(CLUSTER)OF'TAB$'

109INDEX(UNIQUESCAN)OF'I_OBJ#'(NON-UNIQUE)

115TABLEACCESS(BYINDEXROWID)OF'OBJ$'

1211INDEX(UNIQUESCAN)OF'I_OBJ1'(UNIQUE)

134INDEX(UNIQUESCAN)OF'I_OBJ1'(UNIQUE)

143TABLEACCESS(CLUSTER)OF'USER$'

1514INDEX(UNIQUESCAN)OF'I_USER#'(NON-UNIQUE)

162TABLEACCESS(CLUSTER)OF'SEG$'

1716INDEX(UNIQUESCAN)OF'I_FILE#_BLOCK#'(NON-UNIQUE)

181TABLEACCESS(CLUSTER)OF'TS$'

1918INDEX(UNIQUESCAN)OF'I_TS#'(NON-UNIQUE)

Statistics

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

0recursivecalls

0dbblockgets

1389consistentgets

0physicalreads

0redosize

2528bytessentviaSQL*Nettoclient

569bytesreceivedviaSQL*Netfromclient

8SQL*Netroundtripsto/fromclient

0sorts(memory)

0sorts(disk)

98rowsprocessed

-TheEnd-

版权声明:文章由 大问百书 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.dawenbaishu.com/answer/128539.html
热门文章