有多少办法可以查看一个Oracle SQL语句的执行计划 - SQL EXECUTE PLAN

待补充,如果要做一个SQL自动审核工具,从哪里可以下手?

1、通过SQL*PLUS工具里的EXPLAIN PLAN FOR判断,利用DBMS_XPLAN.DISPLAY显示。

2、通过SQL*PLUS工具里的 SET AUTOTRACE命令显示

3、SQL_TRACE,在数据库全局(有性能问题,基本上是废的选项),或者对当前Session定义SQL_TRACE,或者利用DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION获取其他Session的SQL_TRACE。利用TKPROF解析trace文件读取执行计划。

4、利用10046 TRACEFILE_IDENTIFIER事件获取

5、SQLT工具,根据SQL_ID进入数据库获取围绕这个SQL的非常详细的执行计划、统计数据、子游标等相关信息。

6、PL/SQL Developer, TOAD 等工具(他们的数据是哪来的?准确吗?)

7、V$视图,如下:

SELECT * FROM V$SQL_PLAN

SELECT * FROM V$RSRC_PLAN_CPU_MTH

SELECT * FROM V$SQL_PLAN_STATISTICS

SELECT * FROM V$SQL_PLAN_STATISTICS_ALL

SELECT * FROM V$SQLAREA_PLAN_HASH

SELECT * FROM V$RSRC_PLAN_HISTORY

时间: 2024-10-11 18:02:53

有多少办法可以查看一个Oracle SQL语句的执行计划 - SQL EXECUTE PLAN的相关文章

如何通过outline为SQL语句指定执行计划

创建测试表 以用户jyu连接,创建测试表 SQL> conn jyu/jyu; Connected. SQL> create table t (id number, name varchar2(100)); Table created. SQL> insert into t select rownum,object_name from dba_objects; 47391 rows created. SQL> commit; Commit complete. 创建索引 SQL>

【测试】使用hr用户下的employees表写一条SQL语句,执行计划走索引全扫描

SQL> select count(*) from employees; COUNT(*) ---------- 107 Execution Plan ---------------------------------------------------------- Plan hash value: 3580537945 ------------------------------------------------------------------------- | Id | Operat

【测试】并使用scott用户下的emp表写一条SQL语句,执行计划走唯一索引

SQL>set autotrace onSQL>select sal from emp where empno=7902; SAL ---------- 3000 Execution Plan ---------------------------------------------------------- Plan hash value: 2949544139 -----------------------------------------------------------------

ORACLE数据库SQL语句的执行过程

首先是最简单链接数据库的过程,JDBC标准的链接的过程: 1. 载入JDBC驱动程序,一般来说载入驱动程序,采用的都是利用Class.forName()反射来加载驱动 Oracle: Class.forName("oracle.jdbc.driver.OracleDriver"); SQLServer: Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); MySql: Class.forNam

SQL语句性能优化--LECCO SQL Expert

SQL语句的优化是将性能低下的SQL语句转换成目的相同的性能优异的SQL语句. 人工智能自动SQL优化就是使用人工智能技术,自动对SQL语句进行重写,从而找到性能最好的等效SQL语句. 数据库性能的优化   一个数据库系统的生命周期可以分成:设计.开发和成品三个阶段.在设计阶段进行数据库性能优化的成本最低,收益最大.在成品阶段进行数据库性能优化的成本最高,收益最小. 数据库的优化通常可以通过对网络.硬件.操作系统.数据库参数和应用程序的优化来进行.最常见的优化手段就是对硬件的升级.根据统计,对网

sql语句的执行原理

SQL语句执行过程详解 2014-07-17 01:15:43 分类: Oracle SQL语句执行过程详解一条sql,plsql的执行到底是怎样执行的呢?一.SQL语句执行原理:第一步:客户端把语句发给服务器端执行当我们在客户端执行 select 语句时,客户端会把这条 SQL 语句发送给服务器端,让服务器端的进程来处理这语句.也就是说,Oracle 客户端是不会做任何的操作,他的主要任务就是把客户端产生的一些 SQL 语句发送给服务器端.虽然在客户端也有一个数据库进程,但是,这个进程的作用跟

使用Oracle的DBMS_SQL包执行动态SQL语句

使用Oracle的DBMS_SQL包执行动态SQL语句 引用自:http://blog.csdn.net/ggjjzhzz/archive/2005/10/17/507880.aspx 引用自:http://www.cnblogs.com/simonhaninmelbourne/archive/2013/01/23/2872438.html 在某些场合下,存储过程或触发器里的SQL语句需要动态生成.Oracle的DBMS_SQL包可以用来执行动态SQL语句.本文通过一个简单的例子来展示如何利用D

查询Oracle正在执行的sql语句及执行该语句的用户

查询Oracle正在执行的sql语句及执行该语句的用户SELECT B.SID ORACLEID,B.USERNAME 登录ORACLE用户名,B.SERIAL#,SPID 操作系统ID,PADDR,SQL_TEXT 正在执行的SQL,B.MACHINE 计算机名FROM V$PROCESS A, V$SESSION B, V$SQLAREA CWHERE A.ADDR = B.PADDRAND B.SQL_HASH_VALUE = C.HASH_VALUE; --查看正在执行sql的发起者的发

查看SQL语句执行时间与测试SQL语句性能

查看SQL语句执行时间与测试SQL语句性能 写程序的人,往往需要分析所写的SQL语句是否够优化.是否能提升执行效率,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了. 通过设置STATISTICS我们可以查看执行SQL时的系统情况.选项有PROFILE,IO ,TIME.介绍如下: SET STATISTICS PROFILE ON:显示分析.编译和执行查询所需的时间(以毫秒为单位). SET STATISTICS IO ON:报告与语句内引用的每个表的扫描数