执行rdbms\admin\utlxplan.sql
然后set autotrace on
然后set autotrace on
解决方案 »
- 请教:oracle 创建主键自增触发器时 总是弹出2,3,4 怎么回事?
- win7安装oracle10g的问题
- Oracle存储过程
- 删除和更新指定行,如limit(10,20)
- long类型传递给varchar,LONG的值大了以后是否会溢出
- 使用shutdown在SQL中长时间不能退出是怎么回事,怎么才能返回到SQL命令提示?
- 请教有关主键更新的问题,
- 如何在一个数据库中查询所有的表名
- 帖子为什么看不了?
- 关于constraint子句!
- 请各位Oracle高手将下面的SQL server的存储过程转换为Oracle的存储过程(分不够再加,能顺利解决者都有分)
- 郁闷,用户口令闹不清楚?参与着给分
REMARKS VARCHAR2(80) NULL, OPERATION VARCHAR2(30) NULL,
OPTIONS VARCHAR2(30) NULL, OBJECT_NODE VARCHAR2(128) NULL,
OBJECT_OWNER VARCHAR2(30) NULL, OBJECT_NAME VARCHAR2(30) NULL,
OBJECT_INSTANCE NUMBER NULL, OBJECT_TYPE VARCHAR2(30) NULL,
OPTIMIZER VARCHAR2(255) NULL, SEARCH_COLUMNS NUMBER NULL,
ID NUMBER NULL, PARENT_ID NUMBER NULL, POSITION NUMBER NULL,
COST NUMBER NULL, CARDINALITY NUMBER NULL, BYTES NUMBER NULL,
OTHER_TAG VARCHAR2(255) NULL, PARTITION_START VARCHAR2(255) NULL,
PARTITION_STOP VARCHAR2(255) NULL, PARTITION_ID NUMBER NULL, OTHER LONG NULL)
ON COMMIT DELETE ROWS;(我已经在DRMSPDVP下创建好了)2. 运行如下SQL:DELETE FROM PLAN_TABLE;
EXPLAIN PLAN SET STATEMENT_ID = '1'
FOR
SELECT * FROM DEALER WHERE DISTID=:a
;SELECT LPAD(' ',2*(LEVEL-1))||operation||' '||options
||' '||object_name
||' '||DECODE(id, 0, 'Cost = '||position) "Query Plan"
FROM plan_table
START WITH id = 0 AND statement_id = '1'
CONNECT BY PRIOR id = parent_id AND statement_id ='1';注意:将红色部分替换为要解释的SQL即可.如果用Command的SQL包含参数符号'?',则要将'?'依次替换为:a, :b, ...等的参数形式.3. 上面的SQL将作如下格式的输出Query Plan
------------------------------------------------------------------------------------
SELECT STATEMENT Cost = 3
TABLE ACCESS BY INDEX ROWID DEALER
INDEX UNIQUE SCAN PK_DEALER上面是我最常看的输出形式,还有其他一些输出格式的SQL,可参考Oracle文档的Explain Plan命令
4. 除了看索引外,有时表与表的Join方法以及Join的顺序也很重要,一些很特殊的情况下,Oracle可能选择
了一个很慢的Execution Plan,这时要用Hints来调整
这个应该是最好的,因为不用执行sql 本身。
2.执行完sql后,执行rdbms\admin\utlxpls.sql或者utlxplp.sql
1.执行utlxplan.sql
2.执行utlxpls.sql, 没有完全成功,但好像不影响。
3.set time on
4.set autotrace on
然后就可以看到了 ;)
但我想问一下,如果我向用普通开发用户看的话要怎么设呢。
因为开发用户直接执行utlxplan.sql的话权限不够的。
哪位老大能不能再指点一二。谢谢