반응형

보통 오라클을 사용하시다보면 TOAD, GOLDEN , SQL Developer 등을 사용하게 됩니다.

이번 방법은 ui 를 통해 index rebuild 하는 방법이 아닌 sql문을 통해 인덱스 리빌드 방법에 대해서 알려드리겠습니다.

일단 cmd 창을 키고 index rebuild 가 필요한 계정에 접속 합니다.

 

Microsoft Windows [Version 10.0.15063]
(c) 2017 Microsoft Corporation. All rights reserved.

C:\Users\>sqlplus 해당하는계정/해당하는계정비밀번호 

SQL*Plus: Release 11.2.0.2.0 Production on 수 5월 29 19:25:30 2019

Copyright (c) 1982, 2014, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

SQL>

 

이후에

 

 1. select index_name from user_indexes;
   // 인덱스 조회하는 명령어 

2. alter index 인덱스명 rebuild
   // 인덱스 리빌드하는 명령어 

 

명령어를 통해 1번으로 인덱스를 조회 후 2번으로 인덱스를 리빌드 합니다.

 

1.

SQL> select index_name from user_indexes;

INDEX_NAME
------------------------------------------------------------
PK_TEST1
IDX_TEST2
PK_TEST3
IDX_TEST4
IDX_TEST5
PK_TEST6
PK_TEST7
SYS_IL0000032323C00004$$
PK_TEST8
PK_TEST9
PK_TEST10

INDEX_NAME
------------------------------------------------------------
PK_TESTINFO
PK_TESTINFO2
PK_TESTINFO3
PK_TESTINFO_TEST
PK_TESTINFOTEST 
PK_TESTINFO4

17 rows selected.

 

2.

 

SQL> ALTER index PK_TEST1 rebuild;

Index altered.

 

인덱스 리빌드 완료 입니다.

 

하지만 이럴경우 17개의 인덱스를 일일이 쳐야 하기 때문에 좀더 쉬운 SQL 문이 있습니다.

3. 

select 'alter index '||index_name||' rebuild ;' from user_indexes;
    
// 인덱스 리빌드 조회 + 인덱스 리빌드 실행시 사용되는 명령어 자동 생성 쿼리 (1,2 번 따로 진행 안하고 3번 부터 진행 해도 문제 없음)

 

3번을 sql에 칠 경우

 

'ALTERINDEX'||INDEX_NAME||'REBUILD;'
--------------------------------------------------------------------------------
alter index PK_RTBS rebuild ;
alter index IDX_TTBERGTDT_AVRTIME rebuild ;
alter index IDX_THDGHDT_COUNT rebuild ;
alter index IDX_TIDFGDYR_LIST rebuild ;
alter index PK_TGST rebuild ;
alter index PK_THIS rebuild ;
alter index PK_TJTRST rebuild ;
alter index SYS_IL0000032323C00004$$ rebuild ;
alter index PK_TGDFGO rebuild ;
alter index PK_TVBTRYT rebuild ;
alter index PK_TBDFBGYNFO rebuild ;

'ALTERINDEX'||INDEX_NAME||'REBUILD;'
--------------------------------------------------------------------------------
alter index PK_ rebuild ;
alter index PK_HFGUTRNGFO rebuild ;
alter index PK_TDHGFHFGINFO rebuild ;
alter index PK_DFHFGHFGO_NS rebuild ;
alter index PK_TSGHSHGLINFO rebuild ;
alter index PK_HDGHFFT rebuild ;

17 rows selected.

 

이런식으로 자동으로 명령어를 복사 붙혀넣기 할수있게 나옵니다.

 

저 내용들을 긁어서 실행하면 자동으로 인덱스 리빌드가 진행 됩니다.

 

4. 마지막으로 COMMIT; 은 필수 입니다.

 

SQL> COMMIT;

Commit complete.

 

 

 

반응형

+ Recent posts