问题描述
嗨,汤姆,
在为查询创建explain plan时,explain plan表被锁定,直到提交或回滚。如果我们不想提交/回滚,说明计划表保持锁定是一个问题吗?同样,当它被锁定时,我们在当前或其他会话中创建新的解释计划也没有任何问题。
谢谢
在为查询创建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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




