sql执行计划
一、概述
执行计划:一条查询语句在ORACLE中的执行过程或访问路径的描述,即就是对一个查询任务,做出一份怎样去完成任务的详细方案。
如果要分析某条SQL的性能问题,通常我们要先看SQL的执行计划,看看SQL的每一步执行是否存在问题。 看懂执行计划也就成了SQL优化的先决条件。 通过执行计划定位性能问题,定位后就通过建立索引、修改sql等解决问题。
查看sql执行计划常用方式:
1. explain plan for
适用场景:
通过explain plan for命令查看SQL的执行计划,这种方法SQL并不真实执行,一般适用于上线前的SQL预审,尤其对DML语句,由于SQL不执行,不用担心对生产数据造成影响。这种方法查看的执行计划有Predicate Information,无Statistics,查看到的执行计划不一定真实,第三方工具PL/SQL Developer中F5查看执行计划也是调用的这个方法。
示例:我这里用的工具为datagrid
-- 待执行的sql EXPLAIN PLAN FOR(select * from MEM_MEMBERS where CN_NAME like ‘纯子‘); -- 查看执行计划 SELECT plan_table_output FROM TABLE(DBMS_XPLAN.DISPLAY(‘PLAN_TABLE‘)); -- 或者 select * from table(dbms_xplan.display); -- 执行结果 Plan hash value: 2532924901 ------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ------------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 314 | 2 (0)| 00:00:01 | | 1 | TABLE ACCESS BY INDEX ROWID BATCHED| MEM_MEMBERS | 1 | 314 | 2 (0)| 00:00:01 | |* 2 | INDEX RANGE SCAN | IDX_FFP_MEMBER_CNNAME | 1 | | 1 (0)| 00:00:01 | ------------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 2 - access("CN_NAME"=‘纯子‘)
参考:
相关推荐
ribavnu 2020-11-16
要啥自行车一把梭 2020-11-12
vitasfly 2020-11-12
ILVNMM 2020-09-19
zycchun 2020-10-16
康慧欣 2020-09-10
liuweiq 2020-09-09
silencehgt 2020-09-07
sunnyxuebuhui 2020-09-07
西瓜皮儿的皮儿 2020-09-07
李轮清 2020-09-15
lifeison 2020-08-18
cyhgogogo 2020-08-18
minerk 2020-08-15
webliyang 2020-08-15
houdaxiami 2020-08-15
抱抱熊 2020-08-15
caodayong 2020-08-15
徐悦TechBlog 2020-08-15