绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
分区表必须掌握的几个字典
2021-08-30 10:00:17

分布表必须掌握的几个字典 dba_tab_partitions,dba_part_tables,dba_part_key_columns
创建测试表
SQL> Create table &TAB (
ord_day NUMBER(2),
ord_month NUMBER(2),
ord_year NUMBER(4),
ord_id NUMBER(10)
)
storage (initial 12k next 12k pctincrease 0 minextents 1)
PARTITION BY RANGE (ord_year,ord_month,ord_day)
(
PARTITION P1 VALUES LESS THAN (2001,3,31) TABLESPACE &&TBS1,
PARTITION P2 VALUES LESS THAN (2001,6,30) TABLESPACE &&TBS2,
PARTITION P3 VALUES LESS THAN (2001,9,30) TABLESPACE &&TBS3,
PARTITION P4 VALUES LESS THAN (2001,12,32) TABLESPACE &&TBS4
)
/ 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Enter value for tab: range_t
old 1: Create table &TAB (
new 1: Create table range_t (
Enter value for tbs1: test_tbs
old 10: PARTITION P1 VALUES LESS THAN (2001,3,31) TABLESPACE &&TBS1,
new 10: PARTITION P1 VALUES LESS THAN (2001,3,31) TABLESPACE test_tbs,
Enter value for tbs2: test_tbs
old 11: PARTITION P2 VALUES LESS THAN (2001,6,30) TABLESPACE &&TBS2,
new 11: PARTITION P2 VALUES LESS THAN (2001,6,30) TABLESPACE test_tbs,
Enter value for tbs3: test_tbs
old 12: PARTITION P3 VALUES LESS THAN (2001,9,30) TABLESPACE &&TBS3,
new 12: PARTITION P3 VALUES LESS THAN (2001,9,30) TABLESPACE test_tbs,
Enter value for tbs4: test_tbs
old 13: PARTITION P4 VALUES LESS THAN (2001,12,32) TABLESPACE &&TBS4
new 13: PARTITION P4 VALUES LESS THAN (2001,12,32) TABLESPACE test_tbs

Table created.



1 查分区的表 ,这个表是分区表,查这个分区表的分区类型,分区数量以及分区键的数量。
SQL> select table_name, partitioning_type, partition_count, partitioning_key_count
from dba_part_tables
where table_name = UPPER('&&TAB')
/ 2 3 4
old 3: where table_name = UPPER('&&TAB')
new 3: where table_name = UPPER('range_t')

TABLE_NAME PARTITIONING_TYPE PARTITION_COUNT PARTITIONING_KEY_COUNT
------------------------------ ------------------ --------------- ----------------------
RANGE_T RANGE 4 3

2 查表的分区,查分区表的分区名,对应存储空间以及分区键的高值。
SQL> SELECT table_name,partition_name,tablespace_name, high_value FROM dba_tab_partitions
WHERE table_name=UPPER('&&TAB')
order by partition_position
/ 2 3 4
old 2: WHERE table_name=UPPER('&&TAB')
new 2: WHERE table_name=UPPER('range_t')

TABLE_NAME PARTITION_NAME TABLESPACE_NAME HIGH_VALUE
------------------------------ --------------- -------------------- --------------------
RANGE_T P1 TEST_TBS 2001, 3, 31
RANGE_T P2 TEST_TBS 2001, 6, 30
RANGE_T P3 TEST_TBS 2001, 9, 30
RANGE_T P4 TEST_TBS 2001, 12, 32


3 查分区段,查段名和段的分区名以及段的类型,段分区的表空间
SQL> column segment_name format A20
select segment_name, partition_name, segment_type, tablespace_name from dba_segments
where segment_name = UPPER('&&TAB')
order by partition_name
/SQL> 2 3 4
old 2: where segment_name = UPPER('&&TAB')
new 2: where segment_name = UPPER('range_t')

SEGMENT_NAME PARTITION_NAME SEGMENT_TYPE TABLESPACE_NAME
-------------------- --------------- ------------------------------------ --------------------
RANGE_T P1 TABLE PARTITION TEST_TBS
RANGE_T P2 TABLE PARTITION TEST_TBS
RANGE_T P3 TABLE PARTITION TEST_TBS
RANGE_T P4 TABLE PARTITION TEST_TBS

4查分区键,查询分区名称,分区类型(table ,index),分区键名字。
SQL> column name format A15
column column_name format A15
SELECT name, object_type, column_name FROM dba_part_key_columns
WHERE name=UPPER('&&TAB')
old 2: WHERE name=UPPER('&&TAB')
new 2: WHERE name=UPPER('range_t')

NAME OBJECT_TYP COLUMN_NAME
--------------- ---------- ---------------
RANGE_T TABLE ORD_DAY
RANGE_T TABLE ORD_MONTH
RANGE_T TABLE ORD_YEAR

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Oracle运维新鲜事-技术与管理各占半边天
创建时间:2020-08-04 11:34:57
本技术栈旨在分享技术心得,运维趣事,故障处理经验,调优案例,故障处理涉及集群,DG,OGG,大家生产中遇到的问题基本都会囊括了,我会发布生产库遇到的故障,希望在交流中互助互益,共同提高,也希望大家讨论,如果您有生产中遇到的集群问题,也可以在这里提出来,一起讨论,现实中也帮助不少同学解决了生产库的故障。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • Abraham林老师
    栈主
  • 小雨滴
    嘉宾
  • hawkliu
    嘉宾
  • u_97a59a25246404
    嘉宾

小栈成员

查看更多
  • 栈栈
  • dapan
  • 小菜鸟___
  • hwayw
戳我,来吐槽~