索引的相关知识 ②.索引的操作
				
		
		
				
				 
		
				
						    OK,接着昨天来学习索引。今天主要就是介绍一些索引的操作问题。没什么可多说的,都是基础操作。
				
		
		
				
				 
		
				
						三、更改索引
				
		
		
				
				 
		
				
						    可以使用ALTER INDEX语句进行的操作有
				
		
		
				
						
						
				 
		
				
						
								    ● 重建或合并现存索引
						
				
		
		
				
						
								
										    ● 回收未使用的空间或分配新盘区
								
						
				
		
		
				
						
								
										
												    ● 指定/取消并行执行和更改并行度
										
								
						
				
		
		
				
						
								
										
												
														    ● 更改存储参数或物理属性
												
										
								
						
				
		
		
				
						
								
										
												
														
																    ● 指定LOGGING或NOLOGGING
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		    ● 启动或停用键压缩
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				    ● 将索引标记成不可用
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						    ● 开始或停止对索引使用的监视
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						    注:不能更改索引的列结构
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						
																								1、更改索引存储特性
																						
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						    ALTER INDEX emp_ename
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						    STORAGE (PCTINCREASE 50);
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						    使用ENABLE子句的USING INDEX子句来修改约束相关的索引
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						    ALTER TABLE emp
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						    ENABLE PRIMARY KEY SUING INDEX
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						    PCTFREE 5;
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						
																								2、重建现存索引
																						
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						    ALTER INDEX emp_name REBUILD;
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						    ALTER INDEX emp_name REBUILD ONLINE;
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						    注:如果没有重建索引的空间,可以用合并索引代替,也可以联机。
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						
																								3、监视索引使用
																						
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						    ALTER INDEX index MONITORING USAGE;
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						    ALTER INDEX index NOMONITORING USAGE;
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						    可查询视图 V$OBJECT_USAGE来查询正在被监视的索引。MONITORING列标明监视是否被激活,USED标明是否被使用
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						    每次指定MONITORING USAGE时,V$OBJECT_USAGE都会被针对指定的索引进行重新设置,以前的使用信息被清除或重新设置,新的开始时间被记录下来。当指定NOMONITORING USAGE,而又不执行进一步的监视时,则结束时间被记录下,知道下一次发布MONITORING USAGE语句之前,该视图信息均保持不变。
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						
																								四、监视索引的空间使用
																						
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						    如果索引所在键值进场被INSERT、UPDATE、DELETE,那么随着时间的推移会失去空间效率,此时需要查询空间使用效率。
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						    ANALYZE INDEX index_name CALIDATE STRUCTURE;
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						    SELECT PCT_USED FROM INDEX_STATS WHERE NAME = 'index_name';
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						
																								
																										    注:可以重复检查、删除、重建某索引,来检测其空间使用的平均效率。
																								
																						
																				
																		
																
														
												
										
										
												
														
																
																		
																				
																						
																								
																										当某一索引的空间使用效率降到其平均值之下,就可以用过删除并重建索引来精简空间。
																								
																						
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						
																								五、删除索引
																						
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						    删除索引一般是因为以下原因:
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						
																								
																										    ● 不再需要该索引
																								
																						
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																								
																										
																												
																														    ● 该索引没有达到预期的性能改善
																												
																										
																								
																						
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																								
																										
																												
																														
																																
																																		    ● 没有用到该索引
																																
																														
																												
																										
																								
																						
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																								
																										
																												
																														
																																
																																		
																																				
																																						    ● 索引已无效,必须在重建前删除
																																				
																																		
																																
																														
																												
																										
																								
																						
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																								
																										
																												
																														
																																
																																		
																																				
																																						
																																								
																																										    ● 所以已太碎,必须在重建前删除
																																								
																																						
																																				
																																		
																																
																														
																												
																										
																								
																						
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																								
																										
																												
																														
																																
																																		
																																				
																																						
																																								
																																										
																																										
																																								
																																						
																																				
																																		
																																
																														
																												
																										
																								
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						
																								
																										
																												
																														
																																
																																		
																																				
																																						
																																								
																																										    可以使用以下语句来删除索引:
																																								
																																						
																																				
																																		
																																
																														
																												
																										
																								
																						
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																								
																										
																												
																														
																																
																																		
																																				
																																						
																																								
																																										
																																										
																																								
																																						
																																				
																																		
																																
																														
																												
																										
																								
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						
																								
																										
																												
																														
																																
																																		
																																				
																																						
																																								
																																										    DROP INDEX emp_ename;
																																								
																																						
																																				
																																		
																																
																														
																												
																										
																								
																						
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																								
																										
																												
																														
																																
																																		
																																				
																																						
																																								
																																										
																																										
																																								
																																						
																																				
																																		
																																
																														
																												
																										
																								
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						
																								
																										
																												
																														
																																
																																		
																																				
																																						
																																								
																																										    注:不能删除与UNIQUE KEY或PRIMARY KEY相关的索引,必须删除整个约束才可以删除该索引。
																																								
																																						
																																				
																																		
																																
																														
																												
																										
																								
																						
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																								
																										
																												
																														
																																
																																		
																																				
																																						
																																								
																																										
																																										
																																								
																																						
																																				
																																		
																																
																														
																												
																										
																								
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						
																								
																										
																												
																														
																																
																																		
																																				
																																						
																																								
																																										
																																										
																																								
																																						
																																				
																																		
																																
																														
																												
																										
																								
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						
																								
																										
																												
																														
																																
																																		
																																				
																																						
																																								
																																										
																																												六、查看索引信息
																																										
																																								
																																						
																																				
																																		
																																
																														
																												
																										
																								
																						
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																								
																										
																												
																														
																																
																																		
																																				
																																						
																																								
																																										
																																										
																																								
																																						
																																				
																																		
																																
																														
																												
																										
																								
																						
																				
																		
																
														
												
										
								
						
				 
		
				
						
								
										
												
														
																
																		
																				
																						
																								
																										
																												
																														
																																
																																		
																																				
																																						
																																								
																																										    DBA|ALL|USER_INDEXES:所有表上的所有索引,其中的某些列包含DBMS_STATS包或ANALYZE语句产生的统计数据。
																																								
																																						
																																				
																																		
																																
																														
																												
																										
																								
																						
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																								
																										
																												
																														
																																
																																		
																																				
																																						
																																								
																																										    DBA|ALL|USER_IND_COLUMNS:描述表上的索引的列,其中的某些列包含DBMS_STATS包或ANALYZE语句产生的统计数据。
																																								
																																						
																																				
																																		
																																
																														
																												
																										
																								
																						
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																								
																										
																												
																														
																																
																																		
																																				
																																						
																																								
																																										    DBA|ALL|USER_IND_EXPRESSIONS:描述表上的基于函数的索引表达式
																																								
																																						
																																				
																																		
																																
																														
																												
																										
																								
																						
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																								
																										
																												
																														
																																
																																		
																																				
																																						
																																								
																																										    INDEX_STATS:ANALYZE所产生的信息
																																								
																																						
																																				
																																		
																																
																														
																												
																										
																								
																						
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						
																								
																										
																												
																														
																																
																																		
																																				
																																						
																																								
																																										    INDEX_HISTOGRAM:ANALYZE所产生的信息
																																								
																																						
																																				
																																		
																																
																														
																												
																										
																								
																						
																				
																		
																
														
												
										
								
						
				
		
		
				
						
								
										
												
														
																
																		
																				
																						    V$OBJECT_USAGE:MONITORING USAGE语句所产生的信息