达梦数据库查看执行计划
两种格式,一个是explain ,一个是explain for (更详细的计划)
构造环境
create table t1 as select rownum as id ,rownum+1 as id2,rpad(’’,1000,’’) as contents from dual connect by level<=1;
操作已执行
2 create index idx_id_t1 on t1(id);
操作已执行
已用时间: 219.620(毫秒). 执行号:16.
SQL> explain select * from t1 where id=1;
1 #NSET2: [0, 1, 72]
2 #PRJT2: [0, 1, 72]; exp_num(4), is_atom(FALSE)
3 #BLKUP2: [0, 1, 72]; IDX_ID_T1(T1)
4 #SSEK2: [0, 1, 72]; scan_type(ASC), IDX_ID_T1(T1), scan_range[exp_cast(1),exp_cast(1)]
已用时间: 0.504(毫秒). 执行号:0.
explain for 可以看到更详细的方式,只是目前格式化程度并不好,有些看不清楚
SQL> explain for select * from t1 where id=1;
行号 PLAN_ID PLAN_NAME CREATE_TIME LEVEL_ID OPERATION TAB_NAME IDX_NAME SCAN_TYPE SCAN_RANGE ROW_NUMS BYTES COST CPU_COST IO_COST
FILTER JOIN_COND ADVICE_INFO PSTART PSTOP
------ --------- ----------- ----------- -----------
1 4 NULL 2019-10-06 03:42:04.000000 0 NSET2 NULL NULL NULL NULL 1 72 0 0 0
NULL NULL NULL 0 0
2 4 NULL 2019-10-06 03:42:04.000000 1 PRJT2 NULL NULL NULL NULL 1 72 0 0 0
NULL NULL NULL 0 0
3 4 NULL 2019-10-06 03:42:04.000000 2 BLKUP2 T1 IDX_ID_T1 NULL NULL 1 72 0 0 0
NULL NULL NULL 0 0
4 4 NULL 2019-10-06 03:42:04.000000 3 SSEK2 T1 IDX_ID_T1 ASC [exp_cast(1),exp_cast(1)] 1 72 0 0 0
NULL NULL NULL 0 0
结论:达梦数据库查看执行计划explain 看一个大概即可。目前来看,偏简单。
不仅是达梦数据库,其他数据库也一样,和Oracle执行计划比起来,细致层度都相差比较大。这点不得不佩服Oracle。