分区表 全局索引和本地索引 区别

本文详细介绍了Oracle数据库中表的范围分区方法及其对索引的影响。通过对比局部索引和全局索引,阐述了各自在性能和维护方面的优缺点,并提供了实际案例,帮助读者理解如何根据查询条件选择合适的索引类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               
SQL> create user test100 identified by test100 ;User created.SQL> grant dba to test100;Grant succeeded.ALL_IND_PARTITIONS 描述,对于每个index 分区访问到当前用户, 分区级别分区信息, 分区的存储参数相关的视图:DBA_IND_PARTITIONS 描述所有的index 分区在数据库INDEX_OWNER              索引所有者INDEX_NAME               索引名字PARTITION_NAME           分区名字drop table T48_TRANSACTION_MODEL;create table T48_TRANSACTION_MODEL(  trandate    DATE,  orgid       VARCHAR2(11),  stan        NUMBER,  subjectno   VARCHAR2(10),  subjectname VARCHAR2(50),  acctid      NUMBER)partition by range (TRANDATE)(  partition XYZ_20100000 values less than (TO_DATE(' 2011-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')),     partition XYZ_20110101 values less than (TO_DATE(' 2011-01-02 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')),  partition XYZ_20110102 values less than (TO_DATE(' 2011-01-03 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')),  partition XYZ_20110103 values less than (TO_DATE(' 2011-01-04 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')),    partition XYZ_20110104 values less than (TO_DATE(' 2011-01-05 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')),  partition XYZ_20110105 values less than (TO_DATE(' 2011-01-06 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')),  partition XYZ_20110106 values less than (TO_DATE(' 2011-01-07 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')),  partition XYZ_20110107 values less than (TO_DATE(' 2011-01-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')));SQL> select * from dba_ind_partitions where index_owner='TEST100';no rows selectedcreate index T48_TRANSACTION_MODEL_IDX1 on T48_TRANSACTION_MODEL(stan) local;create index T48_TRANSACTION_MODEL_IDX2 on T48_TRANSACTION_MODEL(acctid)  ;SQL> select index_owner,index_name,partition_name from dba_ind_partitions where index_owner='TEST100';INDEX_OWNER         INDEX_NAME        PARTITION_NAME------------------------------ ------------------------------ ------------------------------TEST100          T48_TRANSACTION_MODEL_IDX1     XYZ_20110107TEST100          T48_TRANSACTION_MODEL_IDX1     XYZ_20110106TEST100          T48_TRANSACTION_MODEL_IDX1     XYZ_20110105TEST100          T48_TRANSACTION_MODEL_IDX1     XYZ_20110104TEST100          T48_TRANSACTION_MODEL_IDX1     XYZ_20110103TEST100          T48_TRANSACTION_MODEL_IDX1     XYZ_20110102TEST100          T48_TRANSACTION_MODEL_IDX1     XYZ_20110101TEST100          T48_TRANSACTION_MODEL_IDX1     XYZ_201000008 rows selected.查看是否是分区索引:SQL> select owner,index_name,index_type,table_owner,table_name,table_type,partitioned from dba_indexes where owner='TEST100';OWNER          INDEX_NAME        INDEX_TYPE TABLE_OWNER   TABLE_NAME         TABLE_TYPE  PAR------------------------------ ------------------------------ ---------- ------------------------------ ------------------------------ ----------- ---TEST100          T48_TRANSACTION_MODEL_IDX2     NORMAL  TEST100   T48_TRANSACTION_MODEL        TABLE    NOTEST100          T48_TRANSACTION_MODEL_IDX1     NORMAL  TEST100   T48_TRANSACTION_MODEL        TABLE    YESpartitioned  表明是否索引是分区的(YES) 否则是(NO)我举个 global 索引的例子查询 条件 不走 分区键这个值但是 我走另外一个where条件而且选择性很高就是where 条件里带上了分区键,对应的列 就用LOCAL 索引高度为3不跨越分区 扫描3个block +1个 data block跨越分区 扫描 1000个 分区 *3 +1个data block扫描要跨越 多个 分区你就建立 global 条件里不带上了分区键对应的列,对应的列就用GLOBALoracle会对主键自动创建全局索引我 有一个查询查询 条件 不走 分区键这个值但是 我走另外一个where条件总结就是扫描要跨越 多个 分区你就建立 globalglobal 索引是为了解决 跨越 分区扫描的用的分区 键一般情况下 都已经定位到 单独的分区了你再去建立 对该列的索引 其实 是毫无意思的总结:全局索引:优点:通过索引检索,没有限定分区的谓词、或跨分区时,性能好点,缺点:分区维护的时候麻烦,drop分区等维护会失效,dml的时候索引维护成本高,数据大了rebuild也难local 索引:优点:通过索引检索,有限定分区的谓词、不跨分区时,性能好,分区维护容易,dml的索引维护底,rebuild也方便。缺点:通过索引检索,又没有限定分区的谓词、或跨分区时,性能不如全局索引有分区裁剪的,那么其他列就建立分区索引没有分区裁剪的,那么列就建立global 索引

           

给我老师的人工智能教程打call!http://blog.youkuaiyun.com/jiangjunshow
这里写图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值