티스토리 뷰

오라클 데이터 베이스 힌트란?

 

SQL 쿼리 옵티마이저에게 원하는 실행 계획을 지시하는 주석 형태의 명령입니다 .

힌트는 주로 성능 최적화나 특별한 상황에서 사용되고 힌트를 사용할 때는 신중하게 검증하고 테스트해야 합니다.

쿼리의 SELECT, UPDATE, INSERT, DELETE 문에서 사용할 수 있습니다.

오라클 힌트는 /*+...... */  이 형태로 사용해야하며 +가 있으면 오라클은 이 주석을 힌트로 인식하고 힌트의 내용을 처리하게 됩니다.

 

SELECT문을 예시로 

SELECT /*+ INDEX_DESC(table_name index_name) */ * FROM table_name;

하나 하나 뜯어보면

SELECT * FROM table_name 이 구문자체는 'table내에 있는 모든 정보를 나열해라(기본값 ASC(오름차순))'입니다.

 

하지만 여기에 

/*+ INDEX_DESC(table_name index_name) */ 라는 오라클 힌트가 들어가면 달라집니다.

힌트가 들어감으로써 '지금 내가 전달한 select문을 이렇게 실행해라' 로 해석 할 수 있으며 

힌트의 해석은 ' table_name 의 index_name인덱스를 역순으로 이용해달라'로 해석할수 있습니다.

즉,  '지금 내가 전달한 select문을  table_name 의 index_name인덱스를 역순으로 이용해 실행해라'로 볼수 있는 것입니다.

 

결과 값만 놓고 보자면

SELECT  * FROM  tbl_board ORDER BY 기본키 DESC;

SELECT /*+ INDEX_DESC(table_name index_name(기본키)) */ * FROM table_name;

두 쿼리문의 결과 값은 같습니다.

 

하지만 차이점으로는

ORDER BY - 데이터베이스 상황에 따라서 테이블의 모든 데이터를 정렬하는 방식으로도 동작할 수 있습니다.

Oracle hint - 개발자가 데이터베이스에 어떤 방식으로 실행해 줘야 하는지를 명시하기 때문에 조금 강제성이 부여되는 방식입니다.

 

 

 

 

배워나가는 코린이 입니다!!

부족한게 있다면 댓글로 지적해주세요!! 감사합니다!😊

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함