A. oracle sql执行计划怎么看
plsql developer的话,在sql命令窗口中,按F5就能看到执行计划
sqlplus的话:
方法一
第一步:登入sql/plus 执行命令(无先后顺序)
set time on; (说明:打开时间显示)
set autotrace on; (说明:打开自动分析统计,并显示SQL语句的运行结果)
set autotrace traceonly; (说明:打开自动分析统计,不显示SQL语句的运行结果)
二者选一个执行
第二步: 输入你要查看的sql 执行
第三步:查看结果 如图 (图怎么沾不上啊)
方法二
先执行 EXPLAIN PLAN FOR select * from G_GAMBLING gamb where gamb.active=1
再 select * from table(DBMS_XPLAN.DISPLAY)便可以看到oracle的执行计划了
B. oracle怎样跟踪一条sql语句的执行过程
需要建立一张表来记录
explain plan SET statement_id='name' FOR (这里是你要调试的语句 )
SELECT
A.OPERATION,
OPTIONS,
OBJECT_NAME,
OBJECT_TYPE,
ID,
PARENT_ID
FROM
PLAN_TABLE A
WHERE
STATEMENT_ID='name'
ORDER BY
Id;
ID 'name'是一个标识,你可以自己取,字段有很多个,以下是各个字段的解释(可能格式不对,你可以复制后看):
字段名 字段类型 含义
STATEMENT_ID VARCHAR2(30) explain PLAN 语句中所指定的最优STATEMENT_ID 参数值, 如果在EXPLAN PLAN语句中没有使用SET STATEMENT_ID,那么此值会被设为NULL。
REMARKS VARCHAR2(80) 与被解释规划的各步骤相关联的注释最长可达80 字节
OPERATION VARCHAR2(30) 各步骤所执行内部操作的名称在某条语句所产生的第一行中该列的可能取值如下DELETE STATEMENT INSERT STATEMENT SELECT STATEMENT UPDATE STATEMENT
OPTIONS VARCHAR2(30) 对OPERATION 列中所描述操作的变种
OBJECT_NODE VARCHAR2(128) 用于访问对象的数据库链接database link 的名称对于使用并行执行的本地查询该列能够描述操作中输出的次序
OBJECT_OWNER VARCHAR2(30) 对于包含有表或索引的架构schema 给出其所有者的名称
OBJECT_NAME VARCHAR2(30) 表或索引的名称
OBJECT_INSTANCE INTEGER 根据对象出现在原始original 语句中的次序所给出的相应次序编号就原始的语句文本而论其处理顺序为自左至右自外向内景象扩张view
OBJECT_TYPE VARCHAR2(30) 用于提供对象描述性信息的修饰符例如索引的NON-UNIQUE
OPTIMIZER VARCHAR2(255) 当前优化程序的模式
ID INTEGER 分配给执行规划各步骤的编号
PARENT_ID INTEGER 对ID 步骤的输出进行操作的下一个执行步骤的ID
POSITION INTEGER 对于具有相同PARENT_ID 的步骤其相应的处理次序
COST INTEGER 根据优化程序的基于开销的方法所估计出的操作开销值对于使用基于规则方法的语句该列为空该列值没有特定的测量单位它只是一个用于比较执行规划开销大小的权重值
CARDINALITY INTEGER 根据基于开销的方法对操作所访问行数的估计值
BYTES INTEGER 根据基于开销的方法对操作所访问字节的估计
=============================================
你按照我说的做,后面用
SELECT
*
FROM
PLAN_TABLE A
WHERE
STATEMENT_ID='name'
结果已经很清楚了,全部满足你的要求。
各列的具体含义上面已经给出。
C. 如何查看Oracle中sql语句的执行时间
如何查看Oracle中sql语句的执行时间
: 第三方工具pl/sql的最下一行是执行时间 如果是sqlplus那么就先set timing on,然后执行语句,执行完毕后就能看到执行时间。
D. Oracle如何查看SQL实际执行计划
1、 查看最近执行的SQL语句
select/*recentsql*/s.SQL_ID,s.CHILD_NUMBER,s.HASH_VALUE,s.ADDRESS,s.EXECUTIONS,s.SQL_TEXT
fromv$sqls
wheres.PARSING_USER_ID=(
selectu.user_idfromall_usersu
whereu.username='YH_TEST'
)ands.COMMAND_TYPEin(2,3,6,7,189)
anpper(s.SQL_TEXT)notlikeupper('%recentsql%')
select/*+gather_plan_statistics*//*plan_statistics1*/name,salaryfromtestwherename='t1';
2、使用dbms_xplan.display_cursor查看执行计划,它的用法见笔记 《dbms_xplan.display_cursor的用法》,
注意了:若dbms_xplan.display_cursor要以ALLSTATS LAST格式输出的话,/*+gather_plan_statistics*/这个提示信息放到查询语句中是必须的。
E. oracle sql的执行计划如何查看
方法/步骤
打开PL/SQL Developer软件,请确保plsql能够成功连接到一个oracle数据库。
在PL/SQL Developer中写好一段SQL代码,按F5,或者点击“执行执行计划”图标,PL/SQL Developer会自动打开执行计划窗口,显示该SQL的执行计划。
可以看到窗口上方是sql语句,下方显示执行计划表格。表格的列主要包含描述、用户、对象、成本花费、IO开销等,表格,当然表格列还可以自定义。表格的行包含了查询逻辑的执行顺序和各个步骤信息。
执行计划表格内容的执行顺序是:按照从左至右,从上至下的步骤执行,具体是指执行计划按照层次逐步缩进,从左至右看,缩进最多的那一步最先执行,如果缩进量相同,则按照从上而下的方法判断执行顺序。
通过查看执行计划表格的cost列,即成本花费能够知道哪个步骤花费的成本高,通过查看执行计划表格的行中的objectname列,能够知道是否使用到表中的索引。
步骤阅读
6
本文先简单介绍在plsql中的使用方法,后续会逐步完成各种理论和技巧的使用方法,例如优化器、表连接访问方法、索引等
F. oracle中的sql执行计划怎么看
1、直接File->New->Explain Plan Window,在窗口中执行sql可以查看计划结果。其中,Cost表示cpu的消耗,单位为n%,Cardinality表示执行的行数,等价Rows。
2、先执行 EXPLAIN PLAN FOR select * from tableA where paraA=1,再 select * from table(DBMS_XPLAN.DISPLAY)便可以看到oracle的执行计划了,看到的结果和1中的一样,所以使用工具的时候推荐使用1方法。
注意:PL/SQL Dev工具的Command window中不支持set autotrance on的命令。还有使用工具方法查看计划看到的信息不全,有些时候我们需要sqlplus的支持。
二、通过sqlplus
1.最简单的办法
Sql> set autotrace on
Sql> select * from al;
执行完语句后,会显示explain plan 与 统计信息。
这个语句的优点就是它的缺点,这样在用该方法查看执行时间较长的sql语句时,需要等待该语句执行成功后,才返回执行计划,使优化的周期大大增长。如果不想执行语句而只是想得到执行计划可以采用:
Sql> set autotrace traceonly
G. oracle查看sql还有多长时间执行完成
你好:这个功能当前页还没有方法实现,主要这个执行时间会根据你电脑的配置,sql的复杂程度等不同而不同,很难确定到底需要执行多长时间,
H. 在ORACLE 中怎么查看SQL 执行日志
1、首先打开oracle sql developer工具,没有此工具的可以去网络浏览器下载安装即可,鼠标点击查看菜单。
I. 如何查看一个SQL的执行进度
如何查看一个SQL的执行进度
没有好的办法,你测试一下时间,计算出每条更新要花多少时间,然后用SQL拉出需要更新的条目,再根据前面计算的时间作为参考来做进度条吧!这样出入可能大一点。这个要获取session,目前看到的只有Oracle可以,别的没见过。
J. oracle 中怎么监控sql执行的进度
pl/sql tool session 找到相应的session 一般应用程序是 JDBC Thin Client 然后点下面的sqltext就可以看到执行到那句话了,可以不停刷新看sql变化