2014년 12월 18일 목요일

index rebuild 예[오라클자바커뮤니티/빅데이터/오라클/PLSQL/SQL쿼리/SQL튜닝실무교육/SQL기초교육]

Index rebuild 예 

Oracle 9i 부터는 대부분의 인덱스 타입에 대해 다른 사용자의 작업에 영향을 주지 않으며 index를 재구성하는 방법인 online index rebuild를 지원 합니다. 

인덱스 rebuild 절차는 다음과 같습니다. 

1.        rebuild 하려는 index의 대상 table에 발생하는 변경 대상을 index가 생성되는 tablespace에 “temporary index organized journal table”을 만들어 기록 
2.        다른 사용자의 select는 rebuild 하기 전의 인덱스를 사용 
3.        다른 사용자가 rebuil 되기 전의 인덱스에 변경을 가하면 journal table에 기록 
4.        rebuild 작업이 완료되면 journal table에 있던 변경 내용과 merge 
5.        merge 작업은 20 rows 마다 commit 됨 

인덱스 rebuild 방법에 대해 예를 통해 보도록 하죠… 

SQL> conn scott/tiger 
연결되었습니다. 

SQL> create table test_emp ( 
  2  emp_id varchar2(10) not null, 
  3  emp_name varchar2(10) not null, 
  4  salary number 
  5  ); 

테이블이 생성되었습니다. 

SQL> ); 
SP2-0042: 알 수 없는 명령어 ")" - 나머지 줄 무시. 
SQL> insert into test_emp values ('A0000001','1길동',5000); 

1 개의 행이 만들어졌습니다. 

SQL> insert into test_emp values ('A0000003','3길동',3000); 

1 개의 행이 만들어졌습니다. 

SQL> insert into test_emp values ('A0000002','2길동',2000); 

1 개의 행이 만들어졌습니다. 

SQL> commit; 

커밋이 완료되었습니다. 

SQL> select * from test_emp; 

EMP_ID    EMP_NAME      SALARY 
---------- ---------- ---------- 
A0000001  1길동            5000 
A0000003  3길동            3000 
A0000002  2길동            2000 

SQL> create index idx_emp_id_reverse on emp(emp_id) reverse; 
create index idx_emp_id_reverse on emp(emp_id) reverse 
                                      * 
1행에 오류: 
ORA-00904: 열명이 부적합합니다 


SQL> create index idx_emp_id_reverse on test_emp(emp_id) reverse; 

인덱스가 생성되었습니다. 

SQL> alter index idx_emp_id_reverse rebuild online; 

인덱스가 변경되었습니다. 

SQL> alter index idx_emp_id_reverse rebuild compute statistics online; 

인덱스가 변경되었습니다. 

SQL> -- oracle8i에서는 general index라고 할지라도 compute statistics와 online을 
같이 사용하면 오류가 발생 

SQL> create index idx_ename_sal_fnc 
  2  on test_emp (emp_name desc, (salary / 10)*100); 
on test_emp (emp_name desc, (salary / 10)*100) 
                                          * 
2행에 오류: 
ORA-01031: 권한이 불충분합니다 

-------------------------------------------------------------- 
위의 함수 기반 인덱스를 만들기 위해서는 QUERY REWRITE 권한이 있어야 합니다. 

함수 기반 인덱스란,,,,함수(function)이나 수식(expression)으로 계산된 결과에 대해 인덱스를 생성하여 사용할 수 있는 기능을 제공 합니다. 질의 수행 시 해당 함수, 수식을 처리하여 결과를 가져 오는 것이 아니라 인덱스 형태로 존재하는 미리 계산되어 있는 결과를 가지고 처리하므로 성능 향상을 기할 수 있습니다. 
-------------------------------------------------------------- 

SQL> conn / as sysdba 
연결되었습니다. 

SQL> GRANT QUERY REWRITE TO SCOTT; 

권한이 부여되었습니다. 

SQL> conn scott/tiger 
연결되었습니다. 

SQL> create index idx_ename_sal_fnc 
  2  on test_emp (emp_name desc, (salary / 10)); 

인덱스가 생성되었습니다. 



함수 기반 인덱스에 대해 온라인 리빌드가 가능 합니다. 

SQL> alter index idx_ename_sal_fnc rebuild online; 

인덱스가 변경되었습니다. 

-- Key Compressed Index 생성, 온라인 rebuild test 

SQL> create index idx_salary_compress on test_emp(salary) compress 1; 

인덱스가 생성되었습니다. 

SQL> alter index idx_salary_compress rebuild online; 

인덱스가 변경되었습니다. 


이번에는 비트맵 인덱스를 만들고 온라인 rebuil 해 봅니다. 이 경우엔 온라인 rebuild 되지 않습니다. 

SQL> create bitmap index idx_emp_name on test_emp(emp_name); 

인덱스가 생성되었습니다. 

SQL> alter index idx_emp_name rebuild online; 
alter index idx_emp_name rebuild online 

1행에 오류: 
ORA-08108: 인덱스 온라인으로 된 유형을 구축하거나 재구축하지 말아야 합니다





 [100%환급,실무전문]SQL/빅데이터/자바/스프링/웹퍼블리싱/안드…오라클자바…12-272893
 [채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육…오라클자바…12-112105
53 [평일100%환급7건]웹퍼블리싱,자바&JSP,안드로이드,C#닷넷,SQL기… 오라클자바…03-151974
52 [주말]C#,ASP.NET마스터 오라클자바…01-312106
51 [기업100%환급,평일주간]SQL기초에서스키마오브젝트,PLSQL,힌트… 오라클자바…01-313067
50 [주말주간]자바&웹,jQUERY,스프링프레임워크,마이바티스 오라클자바…01-311623
49 [평일주간/야간,주말주간/야간]Spring,MyBatis,Hibernate개발자… 오라클자바…01-191947
48 [평일주간/야간,주말주간/야간]안드로이드개발자과정(Adnroid 교… 오라클자바…01-111814
47 [평일야간,주말주간야간]JAVA,Network&JSP&Spring,MyBatis,Hiber… 오라클자바…01-032431
46 [100%환급,실무전문]SQL/빅데이터/자바/스프링/웹퍼블리싱/안드… 오라클자바…12-272893
45 [주말야간]개발자를위한PLSQL,SQL튜닝,힌트(토/일) 오라클자바…12-192026
44 [평일주간/야간,주말주간/야간]웹퍼블리싱 마스터(HTML5,CSS3,jQ… 오라클자바…12-141996
43 [채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육… 오라클자바…12-112105
42 [주말야간]JAVA,JSP,Spring,PLSQL,힌트,웹퍼블리싱,안드로이드,… 오라클자바…12-091637
41 [평일야간,주말야간]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 오라클자바…12-011862
40 [기업100%환급]오라클&자바웹스프링신입과정3주(SQL,JAVA,JSP,Se… 오라클자바…12-012110
39 [평일야간,주말]SQL기초에서실무까지(SQL기초,PLSQL,힌트,튜닝) 오라클자바…12-011509

댓글 없음:

댓글 쓰기