分析SQL语句的效率

bzszp 2003-04-08 10:39:35
当我们书写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; (说明:关闭自动分析统计)
...全文
134 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tababy 2003-04-14
  • 打赏
  • 举报
回复
good
jiezhi 2003-04-14
  • 打赏
  • 举报
回复
up
DNCS 2003-04-14
  • 打赏
  • 举报
回复
good
maohaisheng 2003-04-08
  • 打赏
  • 举报
回复
good

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧