2021. 4. 8. 19:14ㆍOracle 공부
이번에는 index에 대해 알아 봅시다
index
index 는 데이터베이스 내에서 원하는 레코드(행)를 빠르게 찾을 수 있도록 만들어진 데이터 구조 입니다.
index 는 primary key, unique 제약조건을 사용할 때 자동으로 생성되고, 또는 수동으로 직접 생성할 수 있습니다.
index 는 인덱스를 저장하는 추가적인 공간을 가지고 생성되고, 조회를 빠르게 합니다.
다만 추가,수정,삭제 가 빈번하게 일어나는 컬럼에 적용하면 오히려 성능부하를 일으킬 수 있습니다.
즉. index 는 조회를 빠르게 해줍니다.
기본키(PK) , 유니크키(unique) 를 생성할 경우, 자동 생성이 됩니다.
만약 어떤 데이터베이스의 성능이 좋지 않다면, 조회를 index 기준으로 해주었는지 확인 해주어야 합니다.
해당 코드를 실행시키고 F10 을 눌러 봅시다.
이렇게 full ( 전부 조회 ) 한 후 값을 가져온 것을 확인 할 수 있습니다.
그런데, 인덱스를 가지고 조회를 한다면?
더 빠르게 조회를 할 수 있습니다.
인덱스 수동 생성
인덱스 삭제
index는 삭제되더라도 테이블에 전혀 영향을 미치지 않습니다.
시퀀스와는 다르죠?
인덱스를 사용한 조회
index를 사용해서 조회를 해봅시다.
index를 사용해서 조회를 할 때는 hint 를 사용하면 되는데,
hint는 /*+ 명령문 */ 으로 만들어 주면 됩니다.
먼저, 간단한 테이블을 만들고, 데이터를 추가 시켜 주겠습니다.
테이블과 시퀀스를 만들고, 시퀀스를 이용해서 데이터를 추가 했습니다. 100까지 추가해주세요
그리고, COMMIT 까지 해줍니다.
- T-BOARD 에 BNO 를 내림차순한 걸 순서대로 41 부터 50 까지만 조회 하려면?
요렇게 했었어야 했죠?
이걸 index의 hint를 사용해 봅시다.
이렇게, SELECT 다음에 /*+ index를 사용한 hint구문 */ 을 작성해주면 됩니다.
※ 주의 /* 다음 바로 + 를 붙여야 합니다.
이해가 잘 안갈 때는, 서브쿼리에 있는 구문만 빼서 보도록 합시다.
이렇게 인덱스에 대해서 알아 보았습니다.
고생하셨습니다.
'Oracle 공부' 카테고리의 다른 글
Day39 - 데이터 모델링 (0) | 2021.04.12 |
---|---|
Day39 - 권한, 사용자 계정 생성, 수정, 삭제 (0) | 2021.04.09 |
Day38 - squence (0) | 2021.04.08 |
Day38 - view (0) | 2021.04.08 |
Day37 - 제약조건 (0) | 2021.04.07 |