一:什么是Oracle执行计划?
执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述
二:怎样查看Oracle执行计划?
这里以PLSQL为例:
①:配置执行计划需要显示的项:
工具 —> 首选项 —> 窗口类型 —> 计划窗口 —> 根据需要配置要显示在执行计划中的列
执行计划的常用列字段解释:
基数(Rows):Oracle估计的当前操作的返回结果集行数
字节(Bytes):执行该步骤后返回的字节数
耗费(COST)、CPU耗费:Oracle估计的该步骤的执行成本,用于说明SQL执行的代价,理论上越小越好(该值可能与实际有出入)
时间(Time):Oracle估计的当前操作所需的时间
②:打开执行计划:
在SQL窗口执行完一条select语句后按 F5 即可查看刚刚执行的这条查询语句的执行计划
select sys_guid() LSH, a.EMPI as EMPI, a.SJLY,XM, XBDM,coalesce(a.XBMC,ZD_XB.ZMC) XBMC, CSRQ,
(case ZJLXDM when '01' then left(a.ZJHM,18) else b.SFZHM end ) SFZHM, (case ZJLXDM when '02' then a.ZJHM else b.HKBHM end ) HKBHM,
(case ZJLXDM when '03' then a.ZJHM else b.HZHM end ) HZHM, (case ZJLXDM when '04' then a.ZJHM else b.JGZHM end ) JGZHM,
(case ZJLXDM when '05' then left(a.ZJHM,18) else b.JSZHM end ) JSZHM, (case ZJLXDM when '06' then a.ZJHM else b.GATXZHM end ) GATXZHM,
(case ZJLXDM when '07' then a.ZJHM else b.TWTXZHM end ) TWTXZHM, (case ZJLXDM when '08' then a.ZJHM else b.SBZHM end ) SBZHM,
(case ZJLXDM when '99' then a.ZJHM else b.QTZJHM end ) QTZJHM,
(case KLXDM when '0' then a.KH else b.SBKH end ) SBKH, (case KLXDM when '1' then a.KH else b.YBKH end ) YBKH,
(case KLXDM when '2' then a.KH else b.YLKH end ) YLKH, (case KLXDM when '3' then a.KH else b.TYZFJZKH end ) TYZFJZKH,
(case KLXDM when '4' then a.KH else b.YYZFKH end ) YYZFKH, (case KLXDM when '5' then a.KH else b.XNHKH end ) XNHKH,
(case KLXDM when '6' then a.KH else b.JKKH end ) JKKH, (case KLXDM when '7' then a.KH else b.SMKH end ) SMKH, c.XTNBH as XTNBH,
(case KLXDM when '9' then a.KH else b.QTKH end ) QTKH,
JMJKDAH, JDJGDM, JDJGMC, JDYSGH, JDYSXM, JDRQ, DAGLJGDM, DAGLJGMC, JKKFKJGDM, JKKFKJGMC, ZRYSGH, ZRYSXM, GZDWMC,
GZDWLXDH, DZYJDZ, LXRGXDM,coalesce(a.LXRGXMC,ZD_LXRGX.ZMC) LXRGXMC, LXRXM, LXRDHHM,CZRKBZ, GJDM,
coalesce(a.GJMC,ZD_GJDM.ZMC) GJMC, MZDM, coalesce(a.MZMC,ZD_GJDM.ZMC) MZ