`
zpball
  • 浏览: 909985 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何使用SQLPLUS分析SQL语句(查询执行计划跟踪)

阅读更多
方法一:autotrace

1,  connect sys/密码 as sysdba,在sys用户下运行$ORACLE_HOME/sqlplus/admin/plustrce.sql
这段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用户下把此角色赋予一般用户
SQL> grant PLUSTRACE to 用户名;

2,然后在当前用户SQL>下运行$ORACLE_HOME/rdbms/admin/utlxplan.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));

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

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

4,接下来你就运行需要查看执行计划的SQL语句,看到其分析统计结果了。一般来讲,我们的SQL语句应该避免对大表的全表扫描。

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

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

附:相关的set autotrace命令:



SET AUTOTRACE OFF
No AUTOTRACE report is generated.

SET AUTOTRACE ON EXPLAIN
shows only the optimizer

execution path.

SET AUTOTRACE ON

STATISTICS
shows only the SQL

statement execution statistics.

SET AUTOTRACE ON
includes both the optimizer

execution path and the SQL statement execution statistics.

SET AUTOTRACE TRACEONLY
Like SET AUTOTRACE ON, but suppresses the printing of the user’s query output, if any.





说明:如果执行了set autotrace on 语句,接下来的查询、插入、更新、删除语句就会显示执行计划和有用的统计信息,直到执行set autotrace off语句。

方法二: EXPLAIN PLAN FOR sql

1,在sqlplus下执行:EXPLAIN PLAN FOR sql语句,执行后会提示已经解释。

2,然后执行如下查询,查询出执行计划



SQL> select * from table(dbms_xplan.display);

例子:

SQL> explain plan for select * from emp where deptno='20';

Explained.

SQL> select * from table(dbms_xplan.display);
分享到:
评论

相关推荐

    获取SQL语句的执行计划v1

    在Oracle数据库中,了解SQL语句的执行计划对于优化查询性能至关重要。本文档详细介绍了几种不同的方法来获取SQL语句的执行计划,包括使用autotrace、EXPLAIN PLAN以及DBMS_XPLAN.DISPLAY_CURSOR等。 #### 方法1:...

    批量运用sqlplus上传sql语句

    - 使用`@文件名.sql`命令,sqlplus会逐行读取文件并执行其中的SQL语句。 - 或者,你可以将所有SQL脚本放入一个主脚本文件中,使用`run`命令批量执行其他脚本,例如:`run ( @file1.sql @file2.sql )` 5. **错误...

    sqlplus中批量执行sql文件

    3. **查看执行结果**:在SQLPlus中执行完`execute.sql`后,可以查看每条SQL语句的执行结果以及是否有任何错误发生。如果在SQL文件中加入了`show error;`语句,则可以直接查看错误信息。 #### 三、注意事项 1. **...

    SQL执行计划简单分析

    当我们执行一个 SQL 语句时,SQLPLUS 将在查询结果后显示执行计划。例如,执行以下语句: ```sql SET AUTOTRACE ON SELECT * FROM hr.employees; ``` 执行结果将显示执行计划,例如: ``` Execution Plan -------...

    oracle利用批处理文件执行SQL语句,bat连接oracle数据库并执行语句

    最后,执行任意SQL语句,例如更新表中的数据,可以使用`EXECUTE IMMEDIATE`命令: ```sql EXECUTE IMMEDIATE 'UPDATE 表名 SET 列 = 值 WHERE 条件'; ``` 批处理文件可以包含这些命令,并通过`exit`命令在完成所有...

    BAT文件执行SQL语句

    "BAT文件执行SQL语句"这一主题就是关于如何通过编写简单的批处理脚本来运行SQL命令,而无需打开像查询分析器或企业管理器这样的图形工具。 批处理文件是Windows操作系统中的DOS命令脚本,它允许用户组合一系列命令...

    SQLPLUS命令的使用大全

    SQLPLUS不仅是执行SQL语句的工具,更是数据库管理和数据分析的强大助手。通过熟练掌握其提供的各种命令,可以显著提高工作效率,简化复杂任务的执行过程。无论是初学者还是资深DBA,深入理解和灵活运用SQLPLUS都将...

    Oracle基础:通过sqlplus执行sql语句后的结果进行判断

    今天小编就为大家分享一篇关于Oracle基础:通过sqlplus执行sql语句后的结果进行判断,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    Oracle性能分析——使用set_autotrace_on和set_timing_on来分析select语句的性能.doc

    Oracle 提供了多种方式来获得一条 SQL 语句的查询计划,例如使用 explain plan 命令,在 SQLDeveloper 里面按 F6 快捷键等。但是,在 sqlplus 工具下,使用 set autotrace on 和 set timing on 的方式是比较简便的...

    如何使用AWR报告发现低效的SQL

    AWR报告能够帮助数据库管理员(DBA)了解和分析系统在一段时间内的资源使用情况,从而诊断性能问题,特别是那些由低效SQL语句引起的性能问题。据统计,约90%的数据库性能问题都与低效的SQL有关。因此,掌握如何利用...

    执行SQL语句的批处理

    这样,所有在执行SQL语句过程中产生的信息,如查询结果或错误消息,都会被保存到results.txt文件中,方便后续查看和分析。 此外,批处理还可以结合其他工具,如Oracle的SQL Developer或Toad等图形化界面工具,它们...

    SQL脚本批量执行,方便大量的SQL脚本执行。

    在SQL的上下文中,批处理通常涉及将多个SQL语句写入一个文本文件,然后通过某种机制一次性执行这些语句。 1. **SQL Server Management Studio (SSMS)**:对于SQL Server用户,SSMS提供了一种直观的方式批量执行SQL...

    Orcle的SQLplus语句详解.doc

    DUAL 表是一个虚拟表,用于提供一个对象供 SELECT 语句使用。 日期类型 SQLplus 中的日期类型需要使用 TO_DATE() 函数进行转换,例如 `TO_DATE('2022-01-01', 'YYYY-MM-DD')`。 查询语句 SQLplus 中提供了多种...

    SQLPLUS命令使用大全

    **说明**:使用这个简单的命令可以快速地重新执行上一次执行的SQL语句。这对于调试和快速测试SQL语句非常有用。 **示例**: ```sql SQL> SELECT * FROM emp; SQL> / ``` 第二次输入`/`时,将再次执行`SELECT * ...

    ORACLE_SQLDeveloper使用教程

    - 通过分析 SQL 查询计划,可以识别性能瓶颈。 - SQL Developer 提供了工具帮助优化 SQL 语句,提高执行效率。 3. **SQL 脚本管理:** - 可以将常用的 SQL 语句保存为脚本文件,便于重复使用。 - SQL Developer...

    SQLPLUS使用手册

    2. **执行SQL语句**:在SQLPLUS环境中,可以直接输入SQL语句执行查询、插入、更新和删除等操作。例如,`SELECT * FROM table_name`用于获取表中的所有数据。 3. **脚本执行**:可以编写包含多条SQL语句的脚本文件...

    Java调用sqlplus执行定制的sql脚本

    首先,SQL*Plus是Oracle数据库提供的一个命令行工具,用于执行SQL语句和PL/SQL块。在Java中调用SQL*Plus,通常有两种方式:一种是通过操作系统命令行(ProcessBuilder或Runtime类),另一种是使用第三方库如JDBC-...

    Linux下定时自动执行Oracle_SQL

    接着,定义输出文件路径,并调用sqlplus工具执行SQL脚本,最终将查询结果保存至指定文件。 - **Crontab配置**:配置文件中定义了执行Shell脚本的频率,例如`1****/home/oracle/ss.sh`表示每小时的第1分钟执行一次...

    批量执行SQL脚本

    1. **脚本组织**:首先,你需要将一系列SQL语句组织成单独的脚本文件,每个文件可能包含一个或多个SQL命令。例如,在提供的文件名“批量报表导入”中,我们可以推测这是一个与报表数据导入相关的脚本,可能包括创建...

Global site tag (gtag.js) - Google Analytics