Oracle UPDATE GLOBAL INDEXES 解析 1. 什么是全局索引? 全局索引(Global Index)是一种索引类型,其索引条目可以跨越表的一个或多个分区。与本地索引(Local Index)不同,本地索引的每个分区都有一个对应的索引分区,而全局索引的分区并不与表的分区一一对应。全局索引主要用于OLTP(在线事务处理)系统。 2. 为什么需要...
具体来说,UPDATE GLOBAL INDEXES或UPDATE INDEXES语句告诉Oracle在修改表或分区结构后更新所有相关的全局索引。Oracle会检查哪些索引受到影响,并根据需要执行重建或验证操作。 在更新全局索引的过程中,Oracle通常会采用以下方法: 1.重建索引(Rebuild Index):如果索引由于某种原因(如DDL操作)变得无效,Oracle会重新构建该索引...
针对drop partition操作来说,由于流水表数据只需保留几个月的数据,对不需要的数据做删除分区操作。 由于Oracle不存在一次性删除多个分区的语法,只能删除一个分区的同时使用update global indexes子句以同时维护索引,这样就增加了维护索引的成本。 因为有针对该表的停机维护时间,想着先删除掉分区数据,在最后一个分区删除的...
导致全局索引失效,不会导致本地索引失效,truncate分区时指定update global indexes全局索引不会失效。 2 drop分区 导致全局索引失效,本地索引因为分区已经drop掉了,也就不存在索引失效的说法了,drop分区时指定update global indexes全局索引不会失效。 3 split分区 导致全局索引和本地索引都失效,split分区时指定update gl...
在12C之前的版本,对分区表进行删除分区或者TRUNCATE分区,合并或者分裂分区,MOVE分区等DDL操作时,分区表上的全局索引会失效,通常要加上UPDATE GLOBAL INDEXES或者ONLINE关键字,可是加上这些关键字之后,本来很快的DDL操作可能就要花费很长的时间,而且还要面临锁的问题。
Step4.1 不指定update global indexes的场景 Step4.2指定update global indexes的场景 Step5 附加 概述 ORACLE关于维护分区表的官方指导文档: Maintaining Partitions 我们知道,当将表中某个字段设置为主键的时候,oracle会自动的创建一个同名的唯一性索引。 分区表亦是如此。
Global索引 对于global索引,可以选择是否分区,而且索引的分区可以不与表分区相对应。全局分区索引只能是B树索引,到目前为止(10gR2),oracle只支持有前缀的全局索引。 另外oracle不会自动的维护全局分区索引,当我们在对表的分区做修改之后,如果对分区进行维护操作时不加上update global indexes的话,通常会导致全局索引的INV...
---注意,如果加上update global indexes 关键字,这个IDX_PART_EXCH_COL3就不会失效 --试验2(加Update GLOBAL indexes关键字) --分区表的exchange connect ljb/ljb drop table part_tab_exch purge; create table part_tab_exch (id int,col2 int,col3 int,contents varchar2(4000)) ...
(6) oracle9i以后对分区表做move或者truncate的时可以用update global indexes语句来同步更新全局分区索引,用消耗一定资源来换取高度的可用性。 (7) 表用a列作分区,索引用b做局部分区索引,若where条件中用b来查询,那么oracle会扫描所有的表和索引的分区,成本会比分区更高,此时可以考虑用b做全局分区索引。
-- 1.2 truncate 分区 不指定update global indexes的情况即不维护全局索引。 altertableGLOBAL_INDEX_PRIMARYKEY truncate partition P1; -- 1.3 全局索引 --- 失效 UNUSABLE状态 selecta.table_name,a.index_name,a.statusfromuser_indexes awherea.table_name='GLOBAL_INDEX_PRIMARYKEY'; GLOBAL_INDEX_PRIMARYKEY...