要先执行一下, 然后用语句查询一下具体的执行情况.
而不是简单的使用explain,
比如 oracle要使用:
select t.*
from v$sql t
where t.sql_text like ‘%mrj0.RULE_OBJECT_ID, mrj0.LIMIT_NUM, mrj0.PRODUCT_ID, mrj0.THIRD_CAT_ID, mrj0.RULE_ID from MARKET_RULE_OBJ mrj0%’
order by t.last_active_time desc;
select * from table(dbms_xplan.display_cursor(‘17cu0rnfyvdr3’,null,‘allstats last’));
而不是navicat上的解释按钮(解释按钮的语句可以在控制台看到 SELECT LPAD(’ ‘, LEVEL-1) || OPERATION || ’ (’ || OPTIONS || ‘)’ “Operation”, OBJECT_NAME “Object”, OPTIMIZER “Optimizer”, COST “Cost”, CARDINALITY “Cardinality”, BYTES “Bytes”, PARTITION_START “Partition Start”, PARTITION_ID “Partition ID”, ACCESS_PREDICATES “Access Predicates”,FILTER_PREDICATES “Filter Predicates” FROM PLAN_TABLE START WITH ID = 0 CONNECT BY PRIOR ID=PARENT_ID; 这个得出来的结果是不太准的, 还是用前文所说的, 不然会迷惑自己. 比如用这个查看的hash join和nested loop会同时存在于执行计划中, 这个迷惑了, 你不知道到底用的哪个)