1 truncate分区 导致全局索引失效,不会导致本地索引失效,truncate分区时指定update global indexes全局索引不会失效。 2 drop分区 导致全局索引失效,本地索引因为分区已经drop掉了,也就不存在索引失效的说法了,drop分区时指定update global indexes全局索引不会失效。 3 split分区 导致全局索引和本地索引都失效,split分区...
接下来删除第一个分区,不带update global indexes子句,删除第二个分区则带上。 14:18:22SYS@testdb(485)>altertablezkm.file_msdroppartition(SYS_P53);Tablealtered. Elapsed:00:00:00.0214:18:43SYS@testdb(485)>selectindex_name,wm_concat(column_name) column_names,statusfrom(selectdistincta.INDEX_NAME...
selectcount(1)fromGLOBAL_INDEX_PRIMARYKEY partition(P1)a;-- 140 -- 1.2 truncate 分区 不指定update global indexes的情况即不维护全局索引。 altertableGLOBAL_INDEX_PRIMARYKEY truncate partition P1; -- 1.3 全局索引 --- 失效 UNUSABLE状态 selecta.table_name,a.index_name,a.statusfromuser_indexes awh...
1SQL> alter table T_TEST drop partition p2 update indexes; 2 3Table altered. 4 5SQL> select TABLE_NAME,INDEX_NAME,STATUS,NUM_ROWS from user_indexes where TABLE_NAME='T_TEST'; 6 7TABLE_NAME INDEX_NAME STATUS NUM_ROWS 8--- --- --- --- 9T_TEST IX_CST_ID VALID 13682650 可能在...
truncate table WRH$_LATCH; 等空间有了后,可以考虑调整awr参数。 执行完MOVE操作后,需要对索引进行重建。同理,对于分区索引,只能对分区的单个索引进行重建,而不能总体重建: ALTER INDEX WRH$_ACTIVE_SESSION_HISTORY_PK REBUILD PARTITION 分区名称; 需要注意的是,可以在以上SQL后加上“UPDATE GLOBAL INDEXES”子句让...
(6) oracle9i以后对分区表做move或者truncate的时可以用update global indexes语句来同步更新全局分区索引,用消耗一定资源来换取高度的可用性。 (7) 表用a列作分区,索引用b做局部分区索引,若where条件中用b来查询,那么oracle会扫描所有的表和索引的分区,成本会比分区更高,此时可以考虑用b做全局分区索引。
Step3. 探究truncate/drop分区对global索引以及local索引的影响 Step3.1 不指定update global indexes的场景 Step3.2指定update global indexes的场景 Step4. 探究exchange分区对global索引以及local索引的影响 Step4.1 不指定update global indexes的场景 Step4.2指定update global indexes的场景 ...
SQL> alter table t truncate partition p1 update global indexes; 表被截断。 SQL> select index_name,partition_name,status from dba_ind_partitions where index _name in ('IDX_T_G'); INDEX_NAME PARTITION_NAME STATUS --- --- --- IDX_T_G GP1 USABLE IDX_T_G GP2 USABLE IDX_T_G GP3 U...
TRUNCATE 示例1:全局索引,全局索引对所有分区类型都支持: sql>create index ix_custaddr_ global_idoncustaddr(id)global; 索引已创建。 示例2:全局分区索引,只支持Range 分区和Hash 分区: (1)创建2个测试分区表: sql>create table pdba (id number, time date) partition by range (time)2(3partition p1 ...
6.oracle9i以后对分区表做move或者truncate的时可以用update global indexes语句来同步更新全局分区索引,用消耗一定资源来换取高度的可用性。 7.表用a列作分区,索引用b做局部分区索引,若where条件中用b来查询,那么oracle会扫描所有的表和索引的分区,成本会比分区更高,此时可以考虑用b做全局分区索引。