반응형
안녕하세요! 오늘은 오라클에서 SQL 성능을 최적화할 수 있는 힌트(Hint) 기능에 대해 소개해드릴까 합니다.
대량 데이터 처리 시 SQL의 실행 계획을 컨트롤해야 할 때 유용하게 사용할 수 있는 기능인데요, 실무에서 꼭 알아두면 좋은 팁입니다.
Hint란 ?
힌트는 "SQL 실행 계획에 영향을 주기 위해 사용되는 오라클의 특별한 주석"
일반적으로 SQL 문장을 작성할 때 오라클의 옵티마이저가 최적의 실행 계획을 자동으로 생성하지만, 특정 상황에서는 개발자가 원하는 방향으로 실행 계획을 지정해야 할 때가 있습니다. 이럴 때 힌트를 사용합니다.
자 그럼 실무에서 유용하게 쓰이는 예시를 봐볼까요~
- FULL 힌트
- 특정 테이블에 대해 Full Table Scan을 강제합니다.
SELECT /*+ FULL(emp) */ * FROM emp;
- 설명: FULL(emp)는 emp 테이블에 대해 Full Table Scan을 하도록 강제합니다.
- 특정 테이블에 대해 Full Table Scan을 강제합니다.
- INDEX 힌트
- 특정 인덱스를 사용하도록 지정합니다.
SELECT /*+ INDEX(emp emp_idx) */ * FROM emp WHERE dept_id = 10;
- 설명: 옵티마이저가 emp_idx라는 인덱스를 사용하도록 지정합니다
- 특정 인덱스를 사용하도록 지정합니다.
- PARALLEL 힌트
- 병렬 처리를 유도합니다.
SELECT /*+ PARALLEL(emp, 4) */ * FROM emp;
- 설명: emp 테이블에 대해 4개의 병렬 프로세스를 사용하여 쿼리를 실행하도록 지정합니다.
- 병렬 처리를 유도합니다.
- NOLOCK 힌트
- 테이블 잠금을 방지합니다.
SELECT /*+ NOLOCK */ * FROM emp;
- 테이블 잠금을 방지합니다.
주의사항
- /*+와 */ 사이에 공백이나 형식 오류가 있으면 옵티마이저가 힌트를 무시합니다.
- SQL의 맨 처음에 위치해야 힌트가 적용되는 경우가 많습니다.
- Hint는 오라클 전용 기능이므로, 다른 DBMS로 이전할 경우에는 적용되지 않을 수 있습니다.
힌트는 주석 형식으로 SQL 코드에 포함되기 때문에, SQL 실행에 영향을 주되 코드를 읽는 다른 개발자들에게도 의미를 전달할 수 있는 좋은 문서화 도구가 될 수 있습니다.
반응형
'※ 소소한 IT' 카테고리의 다른 글
이클립스 유저의 VSCode 단축키 적응기 (0) | 2024.11.25 |
---|---|
웹(Web)과 앱(App) 소프트웨어 등록 절차 (3) | 2024.11.18 |
AI 코드 편집기 Cursor로 본 요즘 개발 트렌드 (0) | 2024.11.14 |
개발자라면 알아야 요즘 대세! SNS 연동부터 Passwordless까지, 최신 암호화 로그인 방법 알아보기 (0) | 2024.11.12 |
클라우드 조직의 트렌드로 SaaS와 IaaS 팀 구성의 최적화 방법 (0) | 2024.11.06 |