티스토리 뷰
오라클 데이터 베이스 힌트란?
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 - 개발자가 데이터베이스에 어떤 방식으로 실행해 줘야 하는지를 명시하기 때문에 조금 강제성이 부여되는 방식입니다.
배워나가는 코린이 입니다!!
부족한게 있다면 댓글로 지적해주세요!! 감사합니다!😊
'프로그래밍 기초 > database' 카테고리의 다른 글
Docker에서 MySQL관리하기 (0) | 2024.01.21 |
---|---|
MongoDB 사용하기(MongoDB Client : Studio 3T) (0) | 2024.01.18 |
MongoDB 사용하기(가입 및 주소 가져오기) (0) | 2024.01.18 |
Node.js와 MySQL연동해보기(2) (0) | 2023.12.27 |
TIL 3일차 - Node.js와 MySQL연동해보기(1) (1) | 2023.12.27 |