如何分析SQL语句

转载 2007年09月22日 21:50:00
很多时候,我们不太清楚自己写的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; (说明:关闭自动分析统计)  

SQL语句执行效率及分析

 1.关于SQL查询效率,100w数据,查询只要1秒,与您分享: 机器情况 p4: 2.4 内存: 1 G os: windows 2003 数据库: ms sql server 20...
  • Liu_jinchun
  • Liu_jinchun
  • 2017年01月03日 15:04
  • 1678

MYSQL sql 语句性能分析

在工作中,我们用于捕捉性能问题最常用的就是打开慢查询,定位执行效率差的SQL,那么当我们定位到一个SQL以后还不算完事,我们还需要知道该SQL的执行计划,比如是全表扫描,还是索引扫描,这些都需要通过E...
  • u011244446
  • u011244446
  • 2017年03月06日 23:08
  • 1361

详解利用EXPLAIN分析sql语句的性能

explain显示了MySQL如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。 先解析一条sql语句,看出现什么内容 EXPLAINSELECTs.ui...
  • Solmyr_biti
  • Solmyr_biti
  • 2017年01月09日 21:55
  • 5275

.mysql的SQL语句执行计划分析:EXPLAIN

from:http://hi.baidu.com/wtnzone/item/beb83840a4971af4dd0f6c77 数据库最常见的操作就是查询了,我们经常要用"SELECT"语法对已有...
  • wang_walfred
  • wang_walfred
  • 2013年07月01日 16:39
  • 10326

数据分析中的SQL整理

对于数据分析师来说,做数据分析的前提是有数据,而提取数据就免不了和SQL打交道。SQL语言是数据分析师必须掌握的一项基本技能,它可以衡量一个数据分析师对数据查询和获取的能力,否则就只能等着别人把数据送...
  • moguxiansheng1106
  • moguxiansheng1106
  • 2015年03月14日 12:43
  • 4266

Mysql使用profiling分析慢sql语句的原因

CleverCode的同事最近给我推荐了一个分析mysql中sql语句的工具,发现这个工具非常不错,能够很准确的分析出查询的过程中sql语句具体的时间花在了哪里。 CleverCode在这里总结一下,...
  • CleverCode
  • CleverCode
  • 2015年06月01日 14:53
  • 4543

MySQL 使用explain分析sql语句的查询效率(一)

mysql explain用于分析sql 语句的执行及数据库索引的使用。本文将致力于帮助大家充分理解explain所返回的各项参数,从而使大家快速掌握explain用法技巧。如果你在看其他教程或视频后...
  • JathamJ
  • JathamJ
  • 2016年12月28日 16:24
  • 3997

sql语句解析实现

第一步:先对sql语句进行预处理; 对于用户,我们应该接受各种形式的查询语句书写,单行或者多行,语句中单个空格或者多个空格的间隔等等。但是我们要解析sql语句,就首先要让对它们做标准化,这样才能...
  • Shirley_John_Thomas
  • Shirley_John_Thomas
  • 2016年09月09日 14:48
  • 883

【一文打尽】SQL 数据分析常用语句

1 基础查询 • 2 字符串数字日期时间 • 3 聚合数据查询 • 4 子查询 • 5 联接组合查询 • 6 高级查询 • 7 更新数据 阅读提醒:点击图片放大可看清晰的 1 基础查询...
  • xgjianstart
  • xgjianstart
  • 2017年07月31日 20:14
  • 202

SQL语句太复杂,怎么优化

 一、视图和存储过程的深度   视图和存储过程能够抽象出一些业务逻辑,简化设计,是很推荐的做法。但是如果在引用视图和存储过程时不加注意,视图套视图,存储过程嵌存储过程,最后嵌套上四五层,那复...
  • whazhl
  • whazhl
  • 2014年09月03日 18:43
  • 1863
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何分析SQL语句
举报原因:
原因补充:

(最多只允许输入30个字)