Oracle 数据库针对分区的信息,通过多个数据字典视图来维护,所以在获取信息时,经常会困惑 DBA 们。
例如,如何获取 分区索引的类型,如何判断一个索引,是 全局分区索引,还是本地分区索引?
通过 DBA_PART_INDEXES 中的 LOCALITY 字段就可以判断:
SQL> select distinct (locality) from dba_part_indexes;
LOCALI
------
LOCAL
LOCAL 意味着是本地索引;GLOBAL 则意味着是全局索引。
DBA_PART_INDEXES 和 ALL_PART_INDEXES、USER_PART_INDEXES 视图的字段相同,分别展示的是 数据库(DBA级别)、用户权限级别(ALL)和 用户所属级别(USER)的分区索引信息。
至于分区类型等,可以通过这个视图查询获得:
SQL> select TABLE_NAME,PARTITIONING_TYPE,LOCALITY from dba_part_indexes where rownum < 10;
TABLE_NAME PARTITION LOCALI
-------------------------------------------------- --------- ------
STREAMS$_APPLY_SPILL_MSGS_PART LIST LOCAL
STREAMS$_APPLY_SPILL_MSGS_PART LIST LOCAL
LOGMNRC_CONCOL_GG RANGE LOCAL
LOGMNRC_CON_GG RANGE LOCAL
L