Dbeaver如何看Oralce执行计划?解决: explain plan FOR 无效? 执行计划的顺序怎么查看?
dbeaver
DBeaver 是一个通用的数据库管理工具,支持跨平台使用。* 支持多种数据库类型,如 MySQL、PostgreSQL、MongoDB 等;提供 SQL 编辑、查询、调试等功能;支持数据迁移和比较。* 特点:免费开源;界面友好;功能丰富。
项目地址:https://gitcode.com/gh_mirrors/db/dbeaver
免费下载资源
·
如果转载,还请注明出处!感谢支持
假如有如下表结构和数据
CREATE TABLE student
(
id number(10) PRIMARY KEY,
name varchar(10) not NULL,
name2 char(10) DEFAULT 'default' NOT NULL,
age number(4)
) tablespace XXXXX;
COMMENT ON COLUMN student.name IS '姓名';
COMMENT ON COLUMN student.name2 IS '姓名2';
COMMENT ON COLUMN student.age IS '年龄';
CREATE UNIQUE INDEX STUDENT_IDX_01 on STUDENT (id,name);
CREATE UNIQUE INDEX STUDENT_IDX_02 on STUDENT (age);
ID NAME NAME2 AGE
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 [NULL]
在dbeaver中用
explain plan FOR SELECT * from student;
查看执行计划,发现没有任何反应(原因见后文)。
所以只能用工具来查看了,如何做呢?
注意上面可能因为版本问题出现的坑: 如果执行计划没有任何反应,先删除“;”分号,重新加上然后再执行。
为什么用下面的方法查看不到执行计划呢?
explain plan FOR SELECT * from student;
原因是我们还少了一条查询SQL,上面只是生成执行计划,但是不会主动显示.
explain plan FOR SELECT * from student;
SELECT * FROM TABLE(dbms_xplan.display);
执行计划如何看呢? 执行计划的执行顺序如何判断?
答:树的后续遍历
假如执行计划为:
--------------------------------------------------
| Id | Operation | Name |
--------------------------------------------------
| 0 | SELECT STATEMENT | |
|* 1 | FILTER | |
| 2 | NESTED LOOPS | |
| 3 | TABLE ACCESS FULL | EMP |
| 4 | TABLE ACCESS BY INDEX ROWID| DEPT |
|* 5 | INDEX UNIQUE SCAN | PK_DEPT |
|* 6 | TABLE ACCESS FULL | SALGRADE |
--------------------------------------------------
画图:
同理,下面的执行顺序为:
GitHub 加速计划 / db / dbeaver
38.73 K
3.35 K
下载
DBeaver 是一个通用的数据库管理工具,支持跨平台使用。* 支持多种数据库类型,如 MySQL、PostgreSQL、MongoDB 等;提供 SQL 编辑、查询、调试等功能;支持数据迁移和比较。* 特点:免费开源;界面友好;功能丰富。
最近提交(Master分支:3 个月前 )
4c33020d
3 个月前
83d4cee8
3 个月前
更多推荐
已为社区贡献10条内容
所有评论(0)