[Oracle] Hint

Study/Oracle 2025. 5. 15. 08:53 Posted by meanoflife

힌트( Hint )

: SQL문 안에서 옵티마이저에게 실행 계획을 유도하는 명령어.

 

* ACCESS 관련

- INDEX( index_name )

  : 지정된 인덱스를 사용

- FULL( table_alias )

  : 테이블을 전체 스캔하도록 지시

- INDEX_DESC

  : 인덱스를 내림차순으로 스캔하도록 지시

 

* JOIN 관련

- USE_NL( table_name )

  : Nested Loop로 Join

- USE_HASH( table_name1, table_name2, ... )

  : Hash로 Join

- USE_MERGE( table_name1,  table_name2, ... )

  : Merge로 Join

- LEADING( table_name1,  table_name2, ... )

  : Join의 선행 테이블 지정

- ORDERED( table_name1,  table_name2, ... )

  : 명시된 순서대로 jOIN

 

* 기타

- APPEND

  - INSERT 작업시 Direct Path Insert 방식을 사용

  - 일반 버퍼 캐시를 거치지 않고 바로 데이터 파일이 직접 기록

  - REDO 로그를 줄이고, 버퍼 캐시를 최소화하여 속도가 빠름

  - PARALLEL 힌트와 함께 사용 가능

  

  - 주의사항

    - 트리거가 무시되거나 비활성화 될 수 있음

    - 기본적으로 제약 조건을 무시하지 않으나

      병렬 DML과 함께 사용시 주의가 필요함.

    - HWM( High Water Mark )가 올라가고

      삭제 후 다시 INSERT하면 공간이 재사용되지 않고 계속 증가함

    - DML 이후에 Commit 필요함

      INSERT는 롤백 불가한 상태에 가깝기 때문에 반드시 Commit 해야 함

 

The End.

 

반응형

'Study > Oracle' 카테고리의 다른 글

오라클 통계함수  (0) 2023.12.13
문자열 역순으로 바꾸기  (0) 2020.10.24
[Oracle/Sybase] Null값 처리하기  (0) 2020.05.10
오라클 Listagg() 함수를 이용한 컬럼 열거하기  (0) 2020.01.15
Query (개발)표준 및 규칙  (0) 2018.11.12