创建索引和索引创建失败清理
1.在线创建索引
vi /tmp/IND_CONTRACT_PRODUCT_SUSP_3.sql nohup sqlplus user/pass @/tmp/IND_CONTRACT_PRODUCT_SUSP_3.sql 1>/tmp/IND_CONTRACT_PRODUCT_SUSP_3.log & set time on set timing on alter session set ddl_lock_timeout=1000; ALTER SESSION FORCE PARALLEL DDL parallel 4; alter session set workarea_size_policy = manual; alter session set sort_area_size=1024000000; alter session set db_file_multiblock_read_count= 128; alter session set "_sort_multiblock_read_count"= 128; CREATE INDEX IND_CONTRACT_PRODUCT_SUSP_3 ON T_CONTRACT_PRODUCT(SUSPEND,PRODUCT_ID,START_PAY_DATE) tablespace LIFEINDEX_T_L ONLINE; alter index IND_CONTRACT_PRODUCT_SUSP_3 noparallel; exit;
SELECT * FROM DBA_IND_COLUMNS where INDEX_OWNER='USER' and TABLE_NAME='T_AGENT';
--查询索引状态
col INDEX_OWNER for a20 col INDEX_NAME for a20 col TABLE_OWNER for a20 col COLUMN_NAME for a20 select index_name,status,table_owner,table_name from dba_indexes where owner='USER' and INDEX_NAME in ('IND_CONTRACT_PRODUCT_SUSP_3'); INDEX_NAME STATUS TABLE_OWNER TABLE_NAME -------------------- ------------------------ -------------------- ------------------------------ IND_CONTRACT_PRODUCT VALID USER T_CONTRACT_PRODUCT_SUSP_3
--查询要创建索引的大小
col OWNER for a20 col SEGMENT_NAME for a30 col SEGMENT_TYPE for a30 col TABLESPACE_NAME for a40 select OWNER,SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME,BYTES/1024/1024/1024 G from dba_segments where OWNER='USER' and SEGMENT_NAME in ('IND_CONTRACT_PRODUCT_SUSP_3'); OWNER SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME G -------------------- ------------------------------ ------------------------------ ---------------------------------------- ---------- USER IND_CONTRACT_PRODUCT_SUSP_3 INDEX LIFEINDEX_T_L 30.4423828 Elapsed: 01:22:05.97
索引创建成功了,1个半小时,大小为30G,状态有效
2.清理在线创建索引失败的对象
1.select object_name,object_id from dba_objects where object_name='IND_CONTRACT_PRODUCT_SUSP_3'; OBJECT_NAME OBJECT_ID -------------------------------------------------------------------------------- IND_CONTRACT_PRODUCT_SUSP_3 886767 2. DECLARE RetVal BOOLEAN; OBJECT_ID BINARY_INTEGER; WAIT_FOR_LOCK BINARY_INTEGER; BEGIN OBJECT_ID := 886767; WAIT_FOR_LOCK := NULL; RetVal := SYS.DBMS_REPAIR.ONLINE_INDEX_CLEAN (); COMMIT; END; /