ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • oracle 인덱스
    DataBase/oracle 2021. 1. 17. 16:24

     

    인덱스 : 어떤 데이터가 어디에 있는지 그 주소를 가지고 있는 주소록과 같은 의미의 데이터베이스 객체

     

    인덱스 = 데이터 + rowid(주소)

     

    인덱스의 생성 원리 :   table full scane -> 정렬 -> 블록에 기록 

    ** 정렬하는 메모리 공간 : pga  (이후에 모자르면 : temporary tablespace) 

     

    [1] unique 인덱스

    create unique index  인덱스 명

    on 테이블명(컬럼);

    [2] non unique 인덱스

    create index 인덱스 명

    on 테이블명(컬럼);

     

    1) empno가 7369인 컬럼의 데이터를 찾는다

    2) 이 때 rowid라고하는 위치값을 이용해서 캐시에 저장하고 

    3) 캐시에 있는 내용을 가져온다

     

    인덱스의 종류

    [1] B-tree 인덱스 : 데이터 값의 종류가 많고 데이터가 적을 경우 주로 사용

        1) unique index 

            create unique index idx_dept2_dname on dept2(dname);

        2) non unique index 

          create index inx_emp2_ename on emp2(ename);

        3) FBI : 함수기반 index 

          create index idx_sal_fbi1 on emp(sal+200); 

        4) descending 인덱스 : 내림차수 인덱스를 생성하는것

          create index idx_desc on emp2(hiredate desc);  

        5) 결합인덱스(composit 인덱스) : 인덱스를 생성할 때 두개 이상의 컬럼을 합쳐서 인덱스를 만드는것 

          create index idx_job_deptno on emp2(deptno, job); 

     

    [2] Bitmap 인덱스 : 데이터 값의 종류가 많고 데이터가 적을 경우 주로 사용

                             해당 데이터가 있는 자리만 1로 표시 나머지 행은 0으로 표시

    create bitmap index 인덱스명 on 테이블명(컬럼명);

     

    ** 주의사항 : 인덱스를 사용하면 무조건 성능이 좋아지는것은 아니다

    // DML을 이용했을경우 취약점

    1) insert : index split현상으로 부하가 걸린다. block이 두개로 갈라지는 현상 (정렬 후 다시 중간에 데이터가 들어가야 할 경우)

    2) delete : 인덱스에서는 데이터를 사용하지않음으로 표시하고 지우지않는다

    3) update : 인덱스에서는 delte를 한 후 새로운 데이터를 insert 작업을 함

     

    인덱스 조회하기 위한 딕셔너리

    1) user_indexes , user_ind_cloims

    2) dba_indexes , dba_ind_colums

     

    index rebuild : 인덱스 생성 후 영구적으로 좋은 성능을 가질 수 없기때문에 항상 관리를 해주어야한다.

                        그 방법이 rebuild !!

    -- 인덱스의 상태를 조회하기위한 명령어  analyze index 인덱스이름 validate structure;

     

     

     

     

     

     

    'DataBase > oracle' 카테고리의 다른 글

    oracle 테이블스페이스  (0) 2020.04.26
    oracle PL/SQL_트리거  (0) 2020.04.26
    oracle PL/SQL_패키지  (0) 2020.04.20
    oracle PL/SQL_서브프로그램_함수  (0) 2020.04.20
    oracle PL/SQL_서브프로그램_프로시저(procedure)  (0) 2020.04.19

    댓글

Designed by Tistory.