`
jiangnan2112
  • 浏览: 120137 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

如何知道你写的SQL性能。

阅读更多
怎样分析你的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; (说明:关闭自动分析统计)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics