ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DATABASE 13장_연습문제
    oracle/13장_인덱스 2022. 12. 12. 12:04

    문제1] 인덱스의 개념과 필요성을 간략하게 정리하시오.

     

    데이터베이스 분야에 있어서 테이블에 대한 동작의 속도를 높여주는 자료 구조를 일컫는다. 인덱스는 테이블 내의 1개의 컬럼, 혹은 여러 개의 컬럼을 이용하여 생성될 수 있다.

    인덱스는 SQL 명령문의 처리 속도를 향상시키기 위해 칼럼에 대해 생성하는 객체이다.

    인덱스는 포인트를 이용하여 테이블에 저장된 데이터를 랜덤 액세스하기 위한 목적으로 사용한다.

     

    문제2] 인덱스의 종류를 간략하게 정리하시오.

      - 인덱스 칼럼 값의 중복 여부에 따라 고유 인덱스와 비고유 인덱스

      - 칼럼의 결합 여부에 따라 단일 인덱스, 결합 인덱스

      - 연산자 또는 함수의 적용 결과에 의해 생성되는 인덱스 (함수 기반 인덱스)

     

    문제3] 12장에서 생성한 MEMBER/BOARD테이블에 아래의 제시한 인덱스를 생성하시오.

    1) MEMBER 테이블의 REGDATE칼럼에 대해 인덱스를 생성하시오.

    CREATE INDEX idx_member_regdata
    ON member(regdata);

    2) BOARD 테이블의 USERID 칼럼에 대해 인덱스를 생성하시오.

    CREATE INDEX idx_board_userid
    ON board(userid);

    3) MEMBER 테이블의 INTEREST와 USERNAME칼럼에 대해 결합 인덱스를 생성하시오.

    CREATE INDEX idx_member_int_userid
    ON member(interest, userid);

    4) MEMBER 테이블의 USERID칼럼에 대해 UPPER()함수를 적용한 함수기반 인덱스를

    생성하시오

    CREATE INDEX upper_member_userid
    ON member(upper(userid));

    member 인덱스 3개가 생성
    board 인덱스

    문제4] 3번에 생성한 인덱스를 재구성하시오.

    alter index idx_member_regdata rebuild;
    alter index idx_board_userid rebuild;
    alter index idx_member_int_userid rebuild;
    alter index upper_member_userid rebuild;

     

    문제5] 3번에 생성한 인덱스에 대한 정보를 데이터 딕셔너리 뷰를 통해 조회하시오.

    -확인결과)

    INDEX_NAME TABLE_NAME

    --------------------------------------------

    IDX_BOARD_USERID BOARD

    IDX_MEMBER_USERID_UPPER MEMBER

    IDX_MEMBER_INTEREST_USERNAME MEMBER

    IDX_MEMBER_REGDATE MEMBER

    select index_name, table_name
    from SYS.USER_INDEXES
    where table_name ='MEMBER'
    or table_name='BOARD';

    INDEX_NAME TABLE_NAME COLUMN_NAME

    ---------------------------------------------------------------

    IDX_BOARD_USERID BOARD USERID

    IDX_MEMBER_REGDATE MEMBER REGDATE

    IDX_MEMBER_INTEREST_USERNAME MEMBER INTEREST

    IDX_MEMBER_INTEREST_USERNAME MEMBER USERNAME

    IDX_MEMBER_USERID_UPPER MEMBER SYS_NC00010$

     

    select index_name, table_name, column_name
    from USER_IND_COLUMNS
    where table_name ='MEMBER'
    or table_name='BOARD';

    'oracle > 13장_인덱스' 카테고리의 다른 글

    인덱스  (0) 2022.12.12
Designed by Tistory.