Oracle Partition怎么使用

技术Oracle Partition怎么使用本篇内容主要讲解“Oracle Partition怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle Partit

本篇内容主要讲解"甲骨文分区怎么使用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"甲骨文分区怎么使用"吧!

神谕分区索引类型

本地索引

A.本地前缀索引

可以理解为分区索引的第一个索引字段是分区表的分区键

B.本地无前缀索引

可以理解为分区索引的第一个索引字段不是分区表的分区键

全局前缀索引

a。范围类型分区

b。哈希类型分区

注意:这两种全球的索引分区类型与基表的分区类型没有关系。我们可以在非分区表上创建该索引

全局无前缀索引(目前神谕还不支持)

创建该索引时会提示ORA-14038:全局分区索引必须有前缀

注意:本地索引索引分区和基表分区是一一对应的

全球指数索引分区和基表分区是相互独立,不存在索引分区和表分区之间的一一对应关系

比如基表有5个分区,索引有2个分区

如何确定分区索引是全局/本地,前缀/非前缀

SQLselectindex_name,table_name,locality,alignmentfrodba _ part _ indexes其中owner=' OHSDBA

索引_名称表_名称本地对齐

-

IDX _全球_预执行系统_零件全球前缀

IDX _本地_非预执行系统_零件本地非预执行系统

如何选取分区索引类型

在决定使用哪种分区索引时,您应该考虑以下原则

如果表分区列是索引键的子集,则使用本地索引。如果是这样,那你就完了。如果不是这种情况,那么继续准则2。

如果索引是唯一的,并且不包括分区键列,则使用全局索引。如果是这样,那你就完了。否则,继续准则3。

如果你的首要任务是可管理性,那么考虑一个本地索引。如果是这样,那你就完了。如果不是这种情况,继续准则4。

If the application is an OLTP type and users need quick response  times, then use a global index. If the application is a DSS type and  users are more interested in throughput, then use a local index.

For more information about partitioned indexes and how to decide which type to use, refer to Using Partitioning in a Data Warehouse Environment and Using Partitioning in an Online Transaction Processing Environment.

以下的维护操作,易导致索引分区UNUSABLE
    1. IMPORT PARTITION or conventional path SQL*Loader.
    2. Direct-path SQL*Loader没有成功完成(local index partitions and global indexes)
    3. 维护操作类似ALTER TABLE MOVE PARTITION.   
    4. 维护操作类似ALTER TABLE TRUNCATE PARTITION.   
    5. 维护操作类似ALTER TABLE SPLIT PARTITION.   
    6. 维护操作类似ALTER INDEX SPLIT PARTITION.   
    7. 对Hash分区类型的表增加分区(分区中数据会变化)
   
如何避免索引UNUSABLE
为了防止分区维护的操作造成Index不可用,我们可以使用带'update global indexes'的语句,以下的操作支持UPDATE GLOBAL INDEXES:
    1. ADD PARTITION|SUBPARTITION (hash only)
    2. COALESCE PARTITION|SUBPARTITION
    3. DROP PARTITION
    4. EXCHANGE PARTITION|SUBPARTITIO
    5. MERGE PARTITION
    6. MOVE PARTITION|SUBPARTITION
    7. SPLIT PARTITION
    8. TRUNCATE PARTITION|SUBPARTITION

Update Global Indexes和Update Indexes的区别
Update Global Indexes只维护全局索引,Update Indexes会同时维护全局和本地索引。Update Global Indexes可以理解为是Update Indexes的子集。假定当前有一个表,在其上面创建了local和global partitioned index,我们把其中一个非空的分区做spilt/merge,如果只使用Update Global Indexes,那么Local Index会被标记成UNUSABLE。如果使用Update Indexes,则两者都有效。Oracle 9.2中可以使用'update global indexes',10g之后可以使用'update global indexes'/'update indexes'

测试可用脚本

create table ohs_part
(id number,
 pdate date)
partition by range(pdate)
(partition ohs_201701 values less than (to_date('2017-02-01','yyyy-mm-dd')),
 partition ohs_201702 values less than (to_date('2017-03-01','yyyy-mm-dd')),
 partition ohs_201703 values less than (to_date('2017-04-01','yyyy-mm-dd')),
 partition ohs_201704 values less than (to_date('2017-05-01','yyyy-mm-dd')),
 partition ohs_max values less than (maxvalue))
/
insert into ohs_part select 1, sysdate from dual;
insert into ohs_part select 2, sysdate from dual;
insert into ohs_part select 3, sysdate - 15 from dual;
insert into ohs_part select 4, sysdate - 15 from dual;
insert into ohs_part select 5, sysdate + 30 from dual;
insert into ohs_part select 6, sysdate + 30 from dual;
insert into ohs_part select 7, sysdate + 60 from dual;
insert into ohs_part select 8, sysdate + 60 from dual;
commit;
create index idx_local on ohs_part(pdate) local;
create index idx_normal on ohs_part(id);
create index idx_global on ohs_part(pdate,id) global;
SQL> create index idx_local on ohs_part(pdate) local; Index created.
SQL> create index idx_normal on ohs_part(id);
Index created.
SQL>
SQL> create index idx_global on ohs_part(pdate,id) global;
Index created.
SQL>
SQL> col index_name for a30
SQL> select index_name,partitioned,status from user_indexes where table_name='OHS_PART';
INDEX_NAME                     PARTITION STATUS
------------------------------ --------- ------------------------
IDX_GLOBAL                     NO        VALID
IDX_NORMAL                     NO        VALID
IDX_LOCAL                      YES       N/A
SQL> select index_name,status from user_ind_partitions where index_name='IDX_LOCAL';
INDEX_NAME                     STATUS
------------------------------ ------------------------
IDX_LOCAL                      USABLE
IDX_LOCAL                      USABLE
IDX_LOCAL                      USABLE
IDX_LOCAL                      USABLE
IDX_LOCAL                      USABLE
SQL>
SQL> col table_name for a20
SQL> select index_name,table_name,locality,alignment from dba_part_indexes where owner='OHSDBA';
INDEX_NAME           TABLE_NAME           LOCALITY           ALIGNMENT
-------------------- -------------------- ------------------ --------------------
IDX_LOCAL            OHS_PART             LOCAL              PREFIXED
SQL>
SQL> create index idx_local_non_prefixed on ohs_part(id,pdate) local;
Index created.
SQL>
SQL> select index_name,table_name,locality,alignment from dba_part_indexes where owner='OHSDBA';
INDEX_NAME                     TABLE_NAME           LOCALITY           ALIGNMENT
------------------------------ -------------------- ------------------ --------------------
IDX_LOCAL                      OHS_PART             LOCAL              PREFIXED
IDX_LOCAL_NON_PREFIXED         OHS_PART             LOCAL              NON_PREFIXED
SQL>
drop index idx_local;
CREATE INDEX idx_global_prefixed ON ohs_part(pdate)
GLOBAL PARTITION BY RANGE(pdate)
(partition ohs_ind_201701 values less than (to_date('2017-02-01','yyyy-mm-dd')),
 partition ohs_ind_201702 values less than (to_date('2017-03-01','yyyy-mm-dd')),
 partition ohs_ind_201703 values less than (to_date('2017-04-01','yyyy-mm-dd')),
 partition ohs_ind_201704 values less than (to_date('2017-05-01','yyyy-mm-dd')),
 partition ohs_ind__max values less than (maxvalue))
/
SQL> drop index idx_local;
Index dropped.
SQL> col index_name for a30
SQL> select index_name,table_name,locality,alignment from dba_part_indexes where owner='OHSDBA';
INDEX_NAME                     TABLE_NAME           LOCALITY           ALIGNMENT
------------------------------ -------------------- ------------------ --------------------
IDX_LOCAL_NON_PREFIXED         OHS_PART             LOCAL              NON_PREFIXED
SQL> CREATE INDEX idx_global_prefixed ON ohs_part(pdate)
  2  GLOBAL PARTITION BY RANGE(pdate)
  3  (partition ohs_ind_201701 values less than (to_date('2017-02-01','yyyy-mm-dd')),
  4   partition ohs_ind_201702 values less than (to_date('2017-03-01','yyyy-mm-dd')),
  5   partition ohs_ind_201703 values less than (to_date('2017-04-01','yyyy-mm-dd')),
  6   partition ohs_ind_201704 values less than (to_date('2017-05-01','yyyy-mm-dd')),
  7   partition ohs_ind__max values less than (maxvalue))
  8  /
Index created.
SQL> select index_name,table_name,locality,alignment from dba_part_indexes where owner='OHSDBA';
INDEX_NAME                     TABLE_NAME           LOCALITY           ALIGNMENT
------------------------------ -------------------- ------------------ --------------------
IDX_GLOBAL_PREFIXED            OHS_PART             GLOBAL             PREFIXED
IDX_LOCAL_NON_PREFIXED         OHS_PART             LOCAL              NON_PREFIXED
SQL>

到此,相信大家对“Oracle Partition怎么使用”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/140990.html

(0)

相关推荐

  • 科目一考什么,科目一到科目四分别考什么

    技术科目一考什么,科目一到科目四分别考什么1)交通法规及相关知识(科目一)——笔试,100分为满分,90分以上为合格(包含90分)科目一考什么。  2)场地驾驶(科目二)——场内,实车。只分合格和不合格。实行9项必考(全

    生活 2021年10月23日
  • VNPY中如何实现从发送交易指令到交易所的源代码

    技术VNPY中如何实现从发送交易指令到交易所的源代码小编给大家分享一下VNPY中如何实现从发送交易指令到交易所的源代码,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让

    攻略 2021年11月20日
  • 本末倒置是什么意思,你做过什么本末倒置的事情

    技术本末倒置是什么意思,你做过什么本末倒置的事情【本末倒置 (成语) 】“本末倒置”是一个汉语成语本末倒置是什么意思;本:树根;末:树梢;置:放。意思是比喻把主要的和次要的、本质和非本质的关系弄颠倒了。出自《绥德州新学记

    生活 2021年10月19日
  • 在营销过程中代理ip有的作用是什么

    技术在营销过程中代理ip有的作用是什么本篇内容主要讲解“在营销过程中代理ip有的作用是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“在营销过程中代理ip有的作用是什么”吧

    攻略 2021年11月2日
  • SpringCloud分布式微服务b2b2c电子商务中docker-feign-hystrix-ribbon的示例分析

    技术SpringCloud分布式微服务b2b2c电子商务中docker-feign-hystrix-ribbon的示例分析小编给大家分享一下SpringCloud分布式微服务b2b2c电子商务中docker-feign-

    攻略 2021年11月19日
  • singletask模式应用(singletask缺点)

    技术singleTask的配置文件有哪些本篇内容介绍了“singleTask的配置文件有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅

    攻略 2021年12月18日