Oracle查看执行计划的几种方法
- 格式:pdf
- 大小:1016.00 KB
- 文档页数:33


oracle 监控指标 sql
Oracle监控指标SQL是用于监控Oracle数据库性能的一种方法,通过收集和分析SQL语句的执行Oracle监控指标SQL是用于监控Oracle数据库性能的一种方法,通过收集和分析SQL语句的执行信息,可以帮助我们了解数据库的性能状况,找出性能瓶颈,优化SQL语句,提高数据库的运行效率。以下是一些常用的Oracle监控指标SQL:
1. 查询SQL执行计划:通过查看SQL语句的执行计划,可以了解数据库如何执行这条SQL语句,从而找出可能存在的性能问题。例如:
sql
EXPLAIN PLAN FOR SELECT * FROM employees WHERE
department_id = 10;
2. 查询SQL执行时间:通过查看SQL语句的执行时间,可以了解数据库执行这条SQL语句所需的时间。例如:
sql
SELECT elapsed_time, executions, sql_text FROM v$sqlarea WHERE sql_text LIKE '%department_id%';
3. 查询SQL缓冲区命中率:通过查看SQL缓冲区的命中率,可以了解数据库缓存的效率。例如:
sql
SELECT name, buffer_gets, buffer_hits, round(buffer_hits
/ buffer_gets, 2) * 100 AS buffer_hit_percentage FROM
v$db_cache_advice;
4. 查询SQL排序操作次数:通过查看SQL排序操作的次数,可以了解数据库在执行排序操作时的性能。例如:
sql
SELECT operation, count(*) AS sort_operations FROM
v$sqlstats WHERE operation = 'SORT' AND child_number = 0 GROUP
查看执行计划的几种方法
There are several methods to view execution plans for SQL queries.
One common approach is to use the "EXPLAIN" keyword in SQL to
display the execution plan for a query. This can provide valuable
insights into how the database engine processes the query and
accesses the underlying data.
在SQL中,使用"EXPLAIN"关键字来显示查询的执行计划是一种常见的方法。这可以提供有关数据库引擎如何处理查询并访问底层数据的宝贵见解。
Another method is to use database management tools such as SQL
Server Management Studio, Oracle Enterprise Manager, or MySQL
Workbench to visualize and analyze the execution plan. These tools
often provide graphical representations of the plan, making it easier
to understand and optimize query performance.
另一种方法是使用数据库管理工具,如SQL Server Management Studio、Oracle Enterprise Manager或MySQL Workbench来可视化和分析执行计划。这些工具通常提供计划的图形表示,使其更容易理解和优化查询性能。
Additionally, some database systems offer built-in monitoring and
OracleSQLDeveloper中查看解释计划ExplainPlan的两种⽅法
⽅法⼀:
⽐如要查看解释计划的SQL是:select * from hy_emp
那么在输⼊窗⼝输⼊:EXPLAIN PLAN FORselect * from hy_emp之后执⾏,输出窗⼝会出现 Explained. 字样,如下图:
之后执⾏select * from table(dbms_xplan.display); 如下:
总结步骤如下:
执⾏:EXPLAIN PLAN FOR
SELECT * from * where....
再执⾏:select * from table(dbms_xplan.display)
⽅法⼆:
这种⽅式更简单,把SQL框起来点按钮就⾏了。
附:Oracle Explain Plan中各种信息的含义:Plan hash value 是该语句的哈希值。SQL 语句和执⾏计划会存储在库缓存中,哈希值相同的语句可以重⽤已有的执⾏计划,也就是软解析;Id 是⼀个序号,但不代表执⾏的顺序。执⾏的顺序按照缩进来判断,缩进越多的越先执⾏,同样缩进的从上⾄下执⾏。Id 前⾯的星号表⽰使⽤了谓词判断,参考下⾯的 Predicate Information;Operation 表⽰当前的操作,也就是如何访问表的数据、如何实现表的连接、如何进⾏排序操作等;Name 显⽰了访问的表名、索引名或者⼦查询等,前提是当前操作涉及到了这些对象;Rows 是 Oracle 估计的当前操作返回的⾏数,也叫基数(Cardinality);Bytes 是 Oracle 估计的当前操作涉及的数据量Cost (%CPU) 是 Oracle 计算执⾏该操作所需的代价;Time 是 Oracle 估计执⾏该操作所需的时间;Predicate Information 显⽰与 Id 相关的谓词信息。access 是访问条件,影响到数据的访问⽅式(扫描表还是通过索引);filter 是过滤条件,获取数据后根据该条件进⾏过滤。--END-- 2019-12-31 13:33
ORACLE执⾏计划explain说明
ORACLE SQL优化⼯具系列之--EXPLAIN PLAN
对于oracle数据库来说,sql语句的优化可能是对性能提升最为明显的,当然对于DBA来说,也是挑战性⽐较⼤的。为了优化⼀个复杂的
SQL语句,⽐如语句执⾏时间过长,我们根据语句的写法,利⽤我们的经验做出⼀些改动,当然是可以的,但更好的⽅法是获取语句的执⾏
计划,看看语句在数据库内部使⽤了什么样的资源,是按照什么样的步骤来执⾏的,⽐如采⽤什么样的关联⽅法、什么样的关联顺序,以及
对表的访问⽅法等。 为了获取语句的执⾏计划,我们可以采⽤多种⽅法和⼯具,⽐如toad⼯具,plsqldeveloper⼯具等,在我的⽂章当中,我们只会使⽤oracle
⾃⼰的⼯具,⽐如本⽂将要介绍到的explainplan,oracle还有⼀些⼯具,autotrace 、sqltrace、tkprof、oem等,我将在以后的某个时间⼀⼀
介绍。
ORACLE的explain plan⼯具的作⽤只有⼀个,获取语句的执⾏计划
1.语句本⾝并不执⾏,ORACLE根据优化器产⽣理论上的执⾏计划
2.语句的分析结果存放在表PLAN TABLE中
SQL> conn scott/tiger
Connected.
SQL> select * from tab;
BONUS TABLE
DEPT TABLE
EMP TABLE
SALGRADE TABLE
SQL> desc plan_table
Name Null? Type
------------------------------------------------------------------------- ------------------
STATEMENT_ID VARCHAR2(30)
PLAN_ID NUMBER
TIMESTAMP DATE
REMARKS VARCHAR2(4000)
OPERATION VARCHAR2(30)