暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 为什么我们在解释计划上有提交/回滚

askTom 2017-07-25
273

问题描述

嗨,团队,

我在查询下面运行以查看我的视图的解释计划。但是查询执行完成后
当我试图断开连接时,它询问

连接 已取消连接。
1:-提交更改
2:-回滚更改
3;-中止连接断开

我需要选择哪一个,为什么这是问,我只做选择

我正在使用sql developer
查询:-

explain plan for select * from viewname

select plan_table_output
from table(dbms_xplan.display());
复制


专家解答

创建explain计划时,Oracle数据库将信息保存到计划表中:

set serveroutput off
explain plan for select * from dual;

select plan_table_output
from   table(dbms_xplan.display());

PLAN_TABLE_OUTPUT                                                           
Plan hash value: 4017058736                                                 
                                                                            
--------------------------------------------------------------------------  
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |  
--------------------------------------------------------------------------  
|   0 | SELECT STATEMENT  |      |     1 |     2 |     2   (0)| 00:00:01 |  
|   1 |  TABLE ACCESS FULL| DUAL |     1 |     2 |     2   (0)| 00:00:01 |  
--------------------------------------------------------------------------

select plan_id, operation, options, object_name from plan_table;

PLAN_ID  OPERATION         OPTIONS  OBJECT_NAME  
564      SELECT STATEMENT                        
564      TABLE ACCESS      FULL     DUAL  
复制


这些是SQL Developer询问您是否要提交/回滚的更改。

请注意,plan_table是sys.plan_table $ 的同义词 (除非您已经创建了自己的...)。这是一个会话级别的临时表 (在提交保留行上)。因此,当您关闭会话时,无论您是提交还是回滚,您的数据都会从中删除。

select owner, object_type
from   dba_objects
where  object_name = 'PLAN_TABLE';

OWNER   OBJECT_TYPE  
PUBLIC  SYNONYM

select table_name, temporary, duration
from   dba_tables
where  table_name = 'PLAN_TABLE$';

TABLE_NAME   TEMPORARY  DURATION     
PLAN_TABLE$  Y          SYS$SESSION 
复制

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论