天道酬勤

RDBMS and My Life

Archive for the ‘plan’ tag

SQL的执行计划

leave a comment

今天有开发人员问怎么安装SQL的执行计划。配置方法不止一种,下面俺简单说一下方法:

第一种方法如下:

在sys用户下运行如下脚本:

SQL>@$ORACLE_HOME/sqlplus/admin/plustrce.sql;

在产生角色plustrace后在sys用户下把该角色授予一般用户username,

SQL>grant plustrace to username;

如果愿意,可以把grant命令中的username替换为public。

第二种方法如下:
在sys用户下运行如下脚本:

SQL>@$ORACLE_HOME/rdbms/admin/utlxplan.sql;

创建一个plan_table,用来存储分析SQL的结果

SQL>create public synonym plan_table for plan_table;
SQL>grant all on plan_table to public;

通过将plan_table设置为public,任何人都可以使用SQL*Plus来查看执行计划,同时也可以把grant to public中的public替换为某个username。

一些开关语句如下:

set time on|off 打开时间显示。

set timing on|off 打开显示执行的时间。

set autotrace on|off 打开自动分析,并显示SQL的运行结果。

set autotrace on statistics 按常规执行,只显示SQL的执行统计数据。

set autotrace on explain 按常规运行,只显示优化程序的执行情况。

set autotrace traceonly 打开自动分析统计,不显示SQL的运行结果。

set autotrace traceonly statistics
与set autotrace traceonly一样,不显示执行计划,只显示统计数据。

set autotrace traceonly explain
与set autotrace traceonly一样,不显示统计数据,只显示执行计划。它只对该查询进行分析和解释,INSERT、UPDATE、DELETE和MEGRE都用此方法,只有SELECTE 有所不同。

三、示例
Read the rest of this entry »

Written by ochef

March 19th, 2009 at 1:55 pm

Posted in Database

Tagged with ,