怎样分析你的SQL语句的效率[转贴]

当我们书写sql语句,很多时候不知道语句的性能效率怎么样,以及的索引的使用情况,往往数据量一大,程序运行变慢。其实有四种方法很清晰的分析出SQL语句的执行计划,它可以提醒我们来创建索引或改变SQL语句的写法。

有四种方法可以分析你的SQL语句的效率

1.explain plan:这种方法用在同一个会话期间分析sql语句。

2.sql trace: 这种方法提供SQL语句执行的细节,包括sql执行的路径,所用的时间和资源消耗情况。

3.sql*plus autotrace 这是sql*plus本身的功能,它会自动产生一个sql语句的执行计划.

4.oracle sql analyze:这是oracle性能管理工具集的一个图形工具.

第三种方法操作简单,容易实现,下面主要介绍第三种方法使用步骤:

1)使用脚本utlxplan.sql建表plan_table

sql>/ORACLE_HOME/rdbms/admin/utlxplan.sql,当然这个脚本需要系统管理员提供.当然书写建plan_table的脚本,plan_table的

结构如下:

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));

2) 授权:以dba用户运行 sql>@ORACLE_HOME/sqlplus/admin/plustrce.sql

产生一个plustrace角色,然后运行 sql>grant plustrace to scott,当然你是以scott用户进行测试。

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

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

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

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

set autotrace on explan

(说明:显示SQL语句的运行结果和执行计划,不打开自动分析统计)

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

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

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

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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐