应用技术:如何分析SQL语句

文章作者 100test 发表时间 2007:09:20 13:50:03
来源 100Test.Com百考试题网


很多时候,我们不太清楚自己写的SQL语句好还是不好,往往数据量一大,程序运行变慢。其实在SQL/PLUS里可以很清晰的分析出SQL语句的执行计划,它可以提醒我们来创建索引或改变SQL语句的写法。

先在sys用户下运行@/ORACLE_HOME/sqlplus/admin/plustrce.sql

内容:
set echo on
0drop role plustrace.
create role plustrace.
grant 0select on v_$sesstat to plustrace.
grant 0select on v_$statname to plustrace.
grant 0select on v_$session to plustrace.
grant plustrace to dba with admin option.
set echo off

产生plustrace角色,然后在sys用户下把此角色赋予一般用户&.username

SQL> grant plustrace to &.username.

然后找到/ORACLE_HOME/rdbms/admin/utlxplan.sql,然后在当前用户SQL>下运行,它创建一个plan_table,用来存储分析SQL语句的结果。

  create table PLAN_TABLE (

   statement_id    varchar2(30),

   timestamp       date,

   remarks         varchar2(80),

   operation       varchar2(30),

   options         varchar2(30),

   object_node     varchar2(128),

   object_owner    varchar2(30),

   object_name     varchar2(30),

   object_instance numeric,

   object_type     varchar2(30),

   optimizer       varchar2(255),

   search_columns  number,

   id              numeric,

   parent_id       numeric,

   position        numeric,

   cost            numeric,

   cardinality     numeric,

   bytes           numeric,

   other_tag       varchar2(255),

   partition_start varchar2(255),

   partition_stop  varchar2(255),

   partition_id    numeric,

   other           long,

   distribution    varchar2(30)).

在SQL/PLUS的窗口运行以下命令

  set time on.   (说明:打开时间显示)

  set autotrace on.   (说明:打开自动分析统计,并显示SQL语句的运行结果)

  set autotrace traceonly.  (说明:打开自动分析统计,不显示SQL语句的运行结果)

接下来你就运行测试SQL语句,看到其分析统计结果了。一般来讲,我们的SQL语句应该避免对大表的全表扫描。

关闭以上功能,在SQL/PLUS的窗口运行以下命令

  set time off.   (说明:关闭时间显示)

  set autotrace off.   (说明:关闭自动分析统计)



相关文章


应用技术:如何分析SQL语句
用户如何有效地利用数据字典
应用技术:查看数据库的SQL
exp_imp导出导入工具的使用
较好的重新启动数据库的步骤
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛