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

Oracle 锁定解释计划表

askTom 2018-05-29
595

问题描述

嗨,汤姆,
在为查询创建explain plan时,explain plan表被锁定,直到提交或回滚。如果我们不想提交/回滚,说明计划表保持锁定是一个问题吗?同样,当它被锁定时,我们在当前或其他会话中创建新的解释计划也没有任何问题。

谢谢

专家解答

默认情况下,PLAN_TABLE是全局临时表的同义词

SQL> select * from dba_synonyms where synonym_name = 'PLAN_TABLE'
  2  @pr
==============================
OWNER                         : PUBLIC
SYNONYM_NAME                  : PLAN_TABLE
TABLE_OWNER                   : SYS
TABLE_NAME                    : PLAN_TABLE$
DB_LINK                       :
ORIGIN_CON_ID                 : 0

PL/SQL procedure successfully completed.


SQL> select * from dba_tables where table_name = 'PLAN_TABLE$'
  2  @pr
==============================
OWNER                         : SYS
TABLE_NAME                    : PLAN_TABLE$
TABLESPACE_NAME               :
CLUSTER_NAME                  :
IOT_NAME                      :
STATUS                        : VALID
PCT_FREE                      : 10
PCT_USED                      : 40
INI_TRANS                     : 1
MAX_TRANS                     : 255
INITIAL_EXTENT                :
NEXT_EXTENT                   :
MIN_EXTENTS                   :
MAX_EXTENTS                   :
PCT_INCREASE                  :
FREELISTS                     : 1
FREELIST_GROUPS               : 1
LOGGING                       : NO
BACKED_UP                     : N
NUM_ROWS                      :
BLOCKS                        :
EMPTY_BLOCKS                  :
AVG_SPACE                     :
CHAIN_CNT                     :
AVG_ROW_LEN                   :
AVG_SPACE_FREELIST_BLOCKS     :
NUM_FREELIST_BLOCKS           :
DEGREE                        :          1
INSTANCES                     :          1
CACHE                         :     N
TABLE_LOCK                    : ENABLED
SAMPLE_SIZE                   :
LAST_ANALYZED                 :
PARTITIONED                   : NO
IOT_TYPE                      :
TEMPORARY                     : Y
SECONDARY                     : N
NESTED                        : NO
BUFFER_POOL                   : DEFAULT
FLASH_CACHE                   : DEFAULT
CELL_FLASH_CACHE              : DEFAULT
ROW_MOVEMENT                  : DISABLED
GLOBAL_STATS                  : NO
USER_STATS                    : NO
DURATION                      : SYS$SESSION
SKIP_CORRUPT                  : DISABLED
MONITORING                    : NO
CLUSTER_OWNER                 :
DEPENDENCIES                  : DISABLED
COMPRESSION                   : DISABLED
COMPRESS_FOR                  : BASIC
DROPPED                       : NO
READ_ONLY                     : NO
SEGMENT_CREATED               : YES
RESULT_CACHE                  : DEFAULT
CLUSTERING                    : NO
ACTIVITY_TRACKING             :
DML_TIMESTAMP                 :
HAS_IDENTITY                  : NO
CONTAINER_DATA                : NO
INMEMORY                      : DISABLED
INMEMORY_PRIORITY             :
INMEMORY_DISTRIBUTE           :
INMEMORY_COMPRESSION          :
INMEMORY_DUPLICATE            :
DEFAULT_COLLATION             : USING_NLS_COMP
DUPLICATED                    : N
SHARDED                       : N
EXTERNAL                      : NO
CELLMEMORY                    :
CONTAINERS_DEFAULT            : NO
CONTAINER_MAP                 : NO
EXTENDED_DATA_LINK            : NO
EXTENDED_DATA_LINK_MAP        : NO
INMEMORY_SERVICE              :
INMEMORY_SERVICE_NAME         :
CONTAINER_MAP_OBJECT          : NO

PL/SQL procedure successfully completed.


这意味着不可能在会话之间有 * 阻止 * 行锁。如果您说锁只是出现在各种监视视图中,那么这不是问题。那只是正常的数据库操作。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论