分区索引重建
来源:互联网 发布:淘宝企业店铺换公司 编辑:程序博客网 时间:2024/06/02 08:12
创建分区表:
CREATE TABLE test(
id NUMBER,
name VARCHAR2(10)
)
partition by range(id)(
partition p1 values less than (1000),
partition p2 values less than (2000),
partition p3 values less than (maxvalue)
);
创建分区索引
LOCAL索引结构
CREATE INDEX id_local ON test(id) LOCAL;
在ID列上创建一个LOCAL的索引
create index id_local on test(id) local;
重新在name列上创建一个GLOBAL的索引
create index ame_global on test(name) global;
insert into test values(999,'p1');
insert into test values(1999,'p2');
insert into test values(2999,'p3');
SQL> select * from test;
ID NAME
---------- ----------
999 p1
1999 p2
2999 p3
查询当前用户下有哪些是分区表:
SQL> SELECT table_name, partitioning_type,partition_count FROM USER_PART_TABLES;
TABLE_NAME PARTITION PARTITION_COUNT
------------------------------ --------- ---------------
TEST RANGE 3
查询当前用户下有哪些分区索引:
SQL> SELECT index_name,table_name FROM USER_PART_INDEXES;
INDEX_NAME TABLE_NAME
------------------------------ ------------------------------
ID_LOCAL TEST
索引对应的分区以及索引的状态
SQL> select index_name,partition_name,status from user_ind_partitions;
INDEX_NAME PARTITION_NAME STATUS
------------------------------ ------------------------------ --------
ID_LOCAL P2 USABLE
ID_LOCAL P1 USABLE
ID_LOCAL P3 USABLE
移动分区表使索引失效
SQL> alter table test move partition p1 tablespace ww;
表已更改。
SQL> alter table test move partition p2 tablespace ww;
表已更改。
SQL> alter table test move partition p3 tablespace ww;
表已更改。
本地分区失效
SQL> select index_name,partition_name,status from user_ind_partitions;
INDEX_NAME PARTITION_NAME STATUS
------------------------------ ------------------------------ --------
ID_LOCAL P3 UNUSABLE
ID_LOCAL P2 UNUSABLE
ID_LOCAL P1 UNUSABLE
Rebuilding Local Index Partitions
Rebuild local indexes using either ALTER INDEX or ALTER TABLE as follows:
ALTER INDEX ... REBUILD PARTITION/SUBPARTITION
This statement rebuilds an index partition or subpartition unconditionally.
ALTER TABLE ... MODIFY PARTITION/SUBPARTITION ... REBUILD UNUSABLE LOCAL INDEXES
This statement finds all of the unusable indexes for the given table partition or subpartition and rebuilds them. It only rebuilds an index partition if it has been marked UNUSABLE.
SQL> alter index id_local rebuild partition p1;
索引已更改。
SQL> select index_name,partition_name,status from user_ind_partitions;
INDEX_NAME PARTITION_NAME STATUS
------------------------------ ------------------------------ --------
ID_LOCAL P1 USABLE
ID_LOCAL P3 UNUSABLE
ID_LOCAL P2 UNUSABLE
SQL>
SQL> ALTER TABLE test MODIFY PARTITION p2 REBUILD UNUSABLE LOCAL INDEXES;
表已更改。
SQL> select index_name,partition_name,status from user_ind_partitions;
INDEX_NAME PARTITION_NAME STATUS
------------------------------ ------------------------------ --------
ID_LOCAL P1 USABLE
ID_LOCAL P2 USABLE
ID_LOCAL P3 UNUSABLE
SQL>
全局索引的状态:
SQL> select index_name,table_name,status from user_indexes where index_name='NAM
_GLOBAL';
INDEX_NAME TABLE_NAME STATUS
------------------------------ ------------------------------ --------
NAM_GLOBAL TEST UNUSABLE
SQL>
You can rebuild global index partitions in two ways:
++ Rebuild each partition by issuing the ALTER INDEX ... REBUILD PARTITION statement (you can run the rebuilds concurrently).
++ Drop the entire global index and re-create it. This method is more efficient because the table is scanned only one time.
SQL> ALTER INDEX nam_global REBUILD;
索引已更改。
SQL> select index_name,table_name,status from user_indexes where index_name='NAM
_GLOBAL';
INDEX_NAME TABLE_NAME STATUS
------------------------------ ------------------------------ --------
NAM_GLOBAL TEST VALID
SQL>
删除分区也会导致全局分区索引失效
SQL> ALTER TABLE test TRUNCATE partition p1;
表被截断。
SQL> select index_name,table_name,status from user_indexes where index_name='NAM
_GLOBAL';
INDEX_NAME TABLE_NAME STATUS
------------------------------ ------------------------------ --------
NAM_GLOBAL TEST UNUSABLE
SQL> select index_name,partition_name,status from user_ind_partitions;
INDEX_NAME PARTITION_NAME STATUS
------------------------------ ------------------------------ --------
ID_LOCAL P1 USABLE
ID_LOCAL P2 USABLE
- 分区索引重建
- 分区索引按分区重建脚本
- oracle中为什么重建分区索引(索引分区)? 重建分区索引和索引分区什么区别?
- SQLServer 重建重组表某个分区索引
- Oracle分区索引什么情况下会重建
- 关于 Oracle 分区索引的失效和重建
- PLSQL,Oracle 测试 ,创建局部分区索引,全局未分区索引 ,全局分区索引,以及失效重建
- 重建索引
- 索引重建
- 重建索引
- 索引重建
- 重建索引
- 重建索引
- 重建索引
- 重建索引
- 索引重建
- 重建索引
- 重建索引
- 同事做客我家
- MOOC——C语言5
- 数据结构 栈(动态数组)
- Windows Phone 图片操作
- 55555555555555555555555
- 分区索引重建
- 【Android开发日记】UTF8汉字编码还原成汉字
- Linux中的软件安装
- 集合框架知识点
- Android把手机作为FTP服务器,在PC端管理手机文件的简单实现
- CURL的学习和应用(附多线程实现)
- POJ 1797 Heavy Transportation&&POJ 2253 Frogger 最短路 dijkstra变形
- windows 窗体空间记忆 消除
- 黑马程序员--C#数据类型