中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > 数据库综合
如何分析SQL语句
作者:佚名 时间:2004-07-10 10:40 出处:互连网 责编:chinaitpower
              摘要:如何分析SQL语句

  很多时候,我们不太清楚自己写的SQL语句好还是不好,往往数据量一大,程序运行变慢。其实在SQL/PLUS里可以很清晰的分析出SQL语句的执行计划,它可以提醒我们来创建索引或改变SQL语句的写法。
  
    先在sys用户下运行@/ORACLE_HOME/sqlplus/admin/plustrce.sql
  
  内容:
  set echo on
  drop role plustrace;
  create role plustrace;
  grant select on v_$sesstat to plustrace;
  grant select on v_$statname to plustrace;
  grant select 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; (说明:关闭自动分析统计)
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有