唐山网站建设

设为主页 加入收藏 繁體中文

查看SQL履行计划常常使用方法

核心提示:不论是做为开发DBA还是保护DBA,总是或多或少地碰到SQL履行效率或说SQL调优题目,查看履行计划是必须的。1般我们可以用3种方法查看....

不论是做为开发DBA还是保护DBA,总是或多或少地碰到SQL履行效率或说SQL调优题目,查看履行计划是必须的。1般我们可以用3种方法查看:

1、explain plan for

举例就足以说明其用法  

以下为援用的内容:

   sys@ORCL>explainplanfor
  2selectsysdatefromdual;
  Explained.
  sys@ORCL>select*fromtable(dbms_xplan.display());
  PLAN_TABLE_OUTPUT
  ----------------------------------------------------------------------------------------------------
  --------------------------------------------------------------------
  |Id|Operation|Name|Rows|Bytes|Cost|
  --------------------------------------------------------------------
  |0|SELECTSTATEMENT|||||
  |1|TABLEACCESSFULL|DUAL||||
  --------------------------------------------------------------------
  Note:rulebasedoptimization
  9rowsselected.

2、利用TKPROF工具

TKPROF是1个用于分析oracle跟踪文件并且产生1个更加清楚公道的输出结果的可履行工具。假设1个系统的履行效率比较低,1个比较好的方法是跟踪用户的会话并且使用TKPROF工具的排序功能格式化输出,从而找出有题目的SQL语句。

TKPROF命令后面的选项及输出文件各个列的含义在这里不做具体的先容。 google1下就会有很多资料。

下面简单描写1下TKPROF工具的使用步骤:

1、在session级别设置sql_trace=true

sys@ORCL>altersessionsetsql_trace=true;
Sessionaltered.

假设要在pl/sql中对session级别设置true,可使用dbms_system这个包:

sys@ORCL> exec dbms_system.set_sql_trace_in_session(sid,serial#,true);

2、指定1下天生的trace文件的名字,便于查找:  

sys@ORCL>altersessionsettracefile_identifier='yourname';

3、履行SQL语句。

4、利用TKPROF工具格式化输出的trace 文件:

 [oracle@q1test01~] $tkprof/oracle/admin/orcl/udump/orcl_ora_10266_yourname.trc/oracle/yourname.txtexplain=user/pwdaggregate=yessys=nowaits=yessort=fchela

5、查看天生的文件再设置sql_trace=false: 

sys@ORCL>altersessionsetsql_trace=false;

3、set autotrace on

此种方法最常常使用,关于如何设置sql*plus的autotrace这里也不做具体先容,由于google上面资料确切太多了。有心的朋友可以往找找,保证有1大堆合适你的资料。

举个例子,这类方法简单易懂: 

以下为援用的内容:

   ctoc@ORCL>setautotraceon
  ctoc@ORCL>selectsysdatefromdual;
  SYSDATE
  ---------
  25-JUN-08
  ExecutionPlan
  ----------------------------------------------------------
  0SELECTSTATEMENTptimizer=CHOOSE
  10TABLEACCESS(FULL)OF'DUAL'
  Statistics
  ----------------------------------------------------------
  0recursivecalls
  0dbblockgets
  3consistentgets
  0physicalreads
  0redosize
  522bytessentviaSQL*Nettoclient
  655bytesreceivedviaSQL*Netfromclient
  2SQL*Netroundtripsto/fromclient
  0sorts(memory)
  0sorts(disk)
  1rowsprocessed

唐山网站建设www.fw8.net


TAG:方法,工具,文件,题目,效率
评论加载中...
内容:
评论者: 验证码: