概述移动表实际上是一个重组过程,数据库会将原来的数据复制到一个新的地方。但是,如果您发现移动后该表性能下降,则可能是您的索引未重建。本文将指导您定位依赖索引并重建它们。将显示从示例移动到用户SQL>selecttablespace_namefromdba_tableswhereowner='HR'andtable_name='EMPLOYEES';TABLESPACE_NAME------------------------------EXAMPLESQL>altertablehr.employeesmovetablespaceusers;Tablealtered.SQL>selecttablespace_namefromdba_tableswhereowner='HR'andtable_name='EMPLOYEES';TABLESPACE_NAME----------------------------用户查看哪些查询决定于此表SQL>columnindex_nameformata30;SQL>columntablespace_nameformata30;SQL>columnstatusformata10;SQL>selectindex_name,tablespace_name,statusfromdba_indexeswhereowner='HR'andtable_name='EMPLOYEES';INDEX_NAMETABLESPACE_NAMESTATUS----------------------------------------------------------------------EMP_JOB_IX示例不可用EMP_DEPARTMENT_IX示例不可用EMP_MANAGER_IX示例不可用EMP_NAME_IX示例不可用EMP_EMAIL_UK示例不可用EMP_EMP_ID_PK示例不可用已选择6行。如您所见,所有依赖索引都是不可用的,这意味着数据库不会自动重建它们。你必须自己做。编写所有重建语句,然后执行SQL>select'alterindex'||拥有者||'.'||索引名称||'重建表空间用户;'作为SQL_TO_BE_EXECUTEDfromdba_indexeswhereowner='HR'andtable_name='EMPLOYEES';SQL_TO_BE_EXECUTED--------------------------------------------------------------------------改变索引EMP_JOB_IX重建表空间用户;改变索引EMP_DEPARTMENT_IX重建表空间用户;改变索引EMP_MANAGER_IX重建表空间用户;改变索引EMP_NAME_IX重建表空间用户;改变索引EMP_EMAIL_UK重建表空间用户;改变索引EMP_EMP_ID_PK重建表空间用户;选择了6行。或者您可以重建原始表空间的索引。SQL>选择“改变索引”||拥有者||'.'||索引名称||'重建表空间'||表空间名||';'作为SQL_TO_BE_EXECUTEDfromdba_indexeswhereowner='HR'andtable_name='EMPLOYEES';SQL_TO_BE_EXECUTED------------------------------------------------------------------------------修改索引HR.EMP_DEPARTMENT_IX重建表空间示例;更改索引HR.EMP_NAME_IX重建表空间示例;更改索引HR.EMP_MANAGER_IX重建表空间示例;更改索引HR.EMP_EMP_ID_PK重建表空间示例;更改索引HR.EMP_EMAIL_UK重建表空间示例;更改索引HR.EMP_JOB_IX重建表空间EXAMPLE;6rowsselected.请注意,我们在新表空间USERS中重新构建搜索。也就是说,对于索引,REBUILD相当于在表中MOVE,查看重建后的状态SQL>selectindex_name,tablespace_name,statusfromdba_indexeswhereowner='HR'andtable_name='EMPLOYEES';INDEX_NAMETABLESPACE_NAMESTATUS----------------------------------------------------------------------EMP_JOB_IXUSERSVALIDEMP_DEPARTMENT_IXUSERSVALIDEMP_MANAGER_IXUSERSVALIDEMP_NAME_IXUSERSVALIDEMP_EMAIL_UKUSERSVALIDEMP_EMP_ID_PKUSERS选择了VALID6行。所有索引都变为VALID,说明重建的索引有效。
