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

Oracle 12.2中的只读分区

askTom 2017-03-21
266

问题描述

团队,

开始阅读关于12.2中的只读分区

http://docs.oracle.com/database/122/VLDBG/partition-create-tables-indexes.htm#VLDBG-GUID-9D7149B6-A2FF-47CA-8F00-47CBFD33F82B

<报价>
只读子句的更高级别的设置应用于分区和子分区,除非已为分区或子分区显式设置了只读子句。


demo@ORA12C> create table t1
  2  partition by list(x)
  3  subpartition by list(y)
  4  subpartition template(
  5     subpartition sp1 values (0) READ ONLY ,
  6     subpartition sp2 values (1) )
  7  (  partition p1 values (0) READ ONLY ,
  8     partition p2 values (1) READ WRITE ,
  9     partition p3 values (2) )
 10  as
 11  select mod(rownum,3) as x, mod(rownum,2) as y ,
 12             object_name, created
 13  from all_objects
 14  where rownum <= 100;

Table created.

demo@ORA12C> column table_name format a10
demo@ORA12C> column partition_name format a10
demo@ORA12C> column subpartition_name format a10
demo@ORA12C> select table_name,partition_name,subpartition_name,read_only
  2  from user_tab_subpartitions
  3  where table_name ='T1'
  4  order by partition_name,subpartition_name;

TABLE_NAME PARTITION_ SUBPARTITI REA
---------- ---------- ---------- ---
T1         P1         P1_SP1     YES
T1         P1         P1_SP2     YES
T1         P2         P2_SP1     NO  <======( This confuses me )
T1         P2         P2_SP2     NO
T1         P3         P3_SP1     YES
T1         P3         P3_SP2     NO

6 rows selected.

demo@ORA12C>
复制


子分区SP1设置为在子分区模板处显式只读。
分区P2设置为在分区级别显式读写。

由于子分区SP1被设置为显式只读,因此在所有分区中,该子分区应该是只读的,但是这里不是这种情况 (请参见上面的分区P2)。

没有子分区模板,事情是这样的。

demo@ORA12C> drop table t1 purge;

Table dropped.

demo@ORA12C> create table t1
  2  partition by list(x)
  3  subpartition by list(y)
  4  (  partition p1 values (0) READ ONLY
  5             (       subpartition p1_sp1 values (0) READ ONLY ,
  6                     subpartition p1_sp2 values (1) ) ,
  7      partition p2 values (1) READ WRITE
  8             (   subpartition p2_sp1 values (0) READ ONLY ,
  9                     subpartition p2_sp2 values (1) ) ,
 10     partition p3 values (2)
 11             (       subpartition p3_sp1 values (0) READ ONLY ,
 12                     subpartition p3_sp2 values (1) )
 13     )
 14  as
 15  select mod(rownum,3) as x, mod(rownum,2) as y ,
 16             object_name, created
 17  from all_objects
 18  where rownum <= 100;

Table created.

demo@ORA12C> column table_name format a10
demo@ORA12C> column partition_name format a10
demo@ORA12C> column subpartition_name format a10
demo@ORA12C> select table_name,partition_name,subpartition_name,read_only
  2  from user_tab_subpartitions
  3  where table_name ='T1'
  4  order by partition_name,subpartition_name;

TABLE_NAME PARTITION_ SUBPARTITI REA
---------- ---------- ---------- ---
T1         P1         P1_SP1     YES
T1         P1         P1_SP2     YES
T1         P2         P2_SP1     YES <====( this looks perfect to me)
T1         P2         P2_SP2     NO
T1         P3         P3_SP1     YES
T1         P3         P3_SP2     NO

6 rows selected.

demo@ORA12C>
复制


我们在这里碰到什么虫子了吗?请纠正我对复合分区表上下文中只读分区的理解。

专家解答

我认为那是一只虫子。

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

评论