`
yufeng0471
  • 浏览: 101059 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

获取执行计划的4种方式

 
阅读更多

获取执行计划的4种方式

 

1:从计划表中获取,计划表名默认是plan_table,可以直接查询计划表,也可以使用dbms_xplan.display函数

 

 

EXPLAIN PLAN FOR SELECT * from tbuser;

SELECT * from TABLE(dbms_xplan.display);
 

2:从动态视图中获取,有4个动态视图(v$sql_plan,v$sql_plan_statistics,v$sql_workarea,v$sql_plan_statistics_all),可以直接查询动态视图,也可以使用dbms_xplan.display_cursor函数

 

 

SELECT * from TABLE(dbms_xplan.display_cursor('1hqjysdfoiewr',0));
 

3:从awr库中获取,可以直接查询视图dba_hist_sql_plan,也可以使用dbms_xplan.display_awr函数

 

 

SELECT * from TABLE(dbms_xplan.display_awr('1hqjysdfoiewr'));
 

4:通过10053,10132,10046事件或sql_trace跟踪

 

ALTER SESSION SET EVENTS '10053 trace name context forever';

ALTER SESSION SET EVENTS '10053 trace name context off';

 

执行计划中特殊字段说明

 

tempspc:      估算要使用的临时表空间,如果pga内存够用的话,这个字段应该就不显示了。

 

cost(%cpu):估算的成本,%cpu代表了cpu开销的百分比,父操作开销包含子操作开销。

 

starts:          操作执行次数,很有用。

 

a-rows:        返回的真实记录数。

 

a-time:         使用的真实时间。

 

omem:          最优执行所需内存的估算值。

 

imem:           一次通过(one-pass)执行所需内存的估算值。

 

0/1/m:          最优/一次通过/多次通过(multipass)操作执行的次数。

 

user-men:    最后一次执行时操作使用的内存。

 

user-tmp:     最后一次执行时操作使用的临时表空间大小,扩大1024倍。

 

max-tem:     操作使用的最大临时表空间大小,扩大1024倍。

 

注:one-pass 使用最少的磁盘操作,大部分操作在内存中执行。

 

      multipass 因工作区设置太小,存在大量的磁盘操作,性能下降。

 

分享到:
评论

相关推荐

    oracle获取执行计划全部方法

    ### Oracle 获取执行计划全部方法详解 #### 方法一:Explain Plan for 方式 - **应用场景**:当某个 SQL 查询执行时间过长甚至无法返回结果时,这种方法尤其适用。 - **步骤**: 1. 使用 `EXPLAIN PLAN FOR` 命令...

    oracle 执行计划 详解

    执行计划的解读方法可以使用 `V$SQLAREA`、`V$SQL_PLAN`、`V$SQLSTATS` 等性能视图来获取执行计划的信息。 执行计划的优化 执行计划的优化可以通过调整索引、访问路径、联接顺序等方法来实现。 索引扫描 索引...

    Oracle执行计划.ppt

    有多种方式可以获取执行计划,包括: * Explain 语句:使用 Explain 语句可以获取执行计划,例如:Explain Plan Set STATEMENT_ID='testplan' For Select ….. * Autotrace 工具:Autotrace 是 Oracle 提供的一种...

    KingbaseES V8R3 执行计划详解.docx

    执行计划是数据库系统根据查询语句生成的一种操作序列,用于高效地获取和处理数据。本文将详细介绍KingbaseES中的执行计划及其各种操作方式。 1. **执行计划简介** 执行计划是数据库管理系统在执行SQL语句前预先...

    剖析SQL Server执行计划

    - **XML格式执行计划**:提供了一种机器可读的方式来表示执行计划,适合程序处理和自动化工具使用。 - **文本格式执行计划**:显示执行计划的基本信息,适合快速查看查询的主要操作。 #### 四、案例分析 本书还...

    绑定执行计划.txt

    这里指出当Oracle的自动优化器生成的执行计划可能不是最优解时,可以手动进行干预,通过绑定执行计划的方式将某个已知较好的执行计划固定下来,确保每次执行该SQL语句时都使用这个固定的执行计划。 #### 标签解释 -...

    mysql 索引与执行计划

    执行计划是指数据库管理系统(DBMS)用来执行SQL查询的方式,它是优化查询性能的关键因素之一。 ###### 1.2.1 什么是执行计划 执行计划是一个内部过程,用于确定数据库如何执行SQL语句。通过使用`EXPLAIN`关键字,...

    SQL执行计划

    3. **调整查询结构**:通过更改查询语句的方式,有时候可以让SQL Server采用更高效的执行计划。 4. **调整表结构**:考虑将数据分表或分区,以减少单个表的数据量。 #### 五、SQL Server 的查找方法 SQL Server提供...

    Oracle的执行计划

    这意味着当再次执行相同的SQL语句时,Oracle可以直接从内存中获取执行计划而无需重新解析,极大地提升了执行效率。 **共享池中的SQL语句匹配规则**:为了确保SQL语句能够成功共享,Oracle采用了严格的匹配策略。...

    ORACLE数据库查看执行计划

    执行计划揭示了Oracle如何处理一个SQL查询,包括数据的访问路径、使用的索引、排序方式以及表之间的连接顺序等。本文将深入探讨如何查看执行计划,并提供优化SQL的策略。 一、执行计划的概念 执行计划是Oracle...

    Oracle解释计划 执行计划

    在Oracle中获取执行计划有多种方法,以下是几种常见的方法: 1. 使用EXPLAIN PLAN语句:这是一种常用的方法,用户可以通过执行EXPLAIN PLAN语句,然后查询输出表来获取SQL语句的执行计划。例如,使用EXPLAIN PLAN ...

    Oracle执行计划与SQL优化实例.pptx

    #### 获取执行计划的方法 1. **使用EXPLAIN PLAN语句**:通过`EXPLAIN PLAN FOR`语句生成执行计划,随后使用`DBMS_XPLAN.DISPLAY`包来格式化并显示执行计划。这一步并不执行SQL语句,仅生成执行计划。 2. **SQL\*...

    Oracle执行计划详细解读.pptx

    获取执行计划的方式有多种,常见的方式包括: 1. 使用 Explain 语句:使用 Explain 语句可以生成执行计划,例如: ```sql explain plan set STATEMENT_ID='testplan' for select * from dual; ``` 2. 使用 ...

    第四节 mysql 执行计划

    本节我们将深入探讨"第四节 mysql 执行计划",主要关注如何分析和解读MySQL查询的执行计划,以及它在优化数据库操作中的作用。 首先,执行计划,也称为查询计划,是数据库管理系统在执行SQL查询时所采用的具体步骤...

    oracle 执行计划

    `来获取执行计划。 #### 三、执行计划的解读 执行计划由一系列的操作步骤组成,每个步骤都有特定的含义。以下是一些常见的操作及其含义: - **SELECT STATEMENT**: 表示整个查询语句。 - **TABLE ACCESS FULL**: ...

    通过分析SQL语句的执行计划优化SQL语句

    大多数DBMS,如Oracle、MySQL、SQL Server等,都提供了获取执行计划的功能。在查询执行前,DBMS会解析SQL语句,生成一棵逻辑操作树,然后转化为物理操作计划,即执行计划。执行计划中的每个节点代表一个操作,如扫描...

Global site tag (gtag.js) - Google Analytics