본문 바로가기

ORACLE

(3)
[ORACLE] 오라클 HINT 란? 오라클 HINT 란? 힌트는 SQL튜닝의 핵심부분으로 일종의 지시구문이다.SQL에 포함되어 쓰여져 옵티마이저(Optimizer)의 실행 계획을 원하는 대로 바꿀 수 있게 해준다.오라클 옵티마이저라고 해서 항상 최선의 실행 계획을 수립할 수는 없으므로, 잘못된 실행 계획을 개발자가 직접 바꿀 수 있도록 도와주는 것이다. 사용자는 특정 SQL문장에서 어떤 인덱스가 선택도가 높은지에 대해 알고 있는데,이럴경우 옵티마이저에 의존하여 나온 실행 계획보다 훨씬 효율적인 실행계획을 사용자가 구사할 수 있다.단, 무분별한 힌트의 사용은 오히려 성능의 저하를 초래하기 때문에 적절하게 사용이 필요하다.  Referencehttps://blog.naver.com/wideeyed/80036376623https://yulsfa..
[DB] 옵티마이저란(Optimizer) ? 데이터 베이스 옵티마이저란 ? 옵티마이저는 SQL을 가장 빠르고 효율적으로 수행할 최적의 처리경로를 생성해주는 DBMS 내부의 핵심 엔진이다. 옵티마이저의 특징 ? 옵티마이저는 데이터베이스 서버에서 두뇌와 같은 역활을 담당한다.개발자가 SQL을 작성하고 실행하면 즉시 실행되는것이 아닌, 옵티마이저에서 실행 계획을 세운다.옵티마이저가 선택한 실행 방법의 적절성 여부는 쿼리 수행 속도에 가장 큰 영향을 미친다.옵티마이저 종류규칙 기반 최적화(Rule-Based Optimizer, RBO)비용 기반 최적화(Cost-Based Optimizer, CBO)휴리스틱 기반 옵티마이저(Heuristic-Based Optimizer)    1. 규칙 기반 최적화 (Rule-Based Optimizer, RBO)     ..
[ORACLE] 오라클 Table Full Scan VS Index Range Scan 테이블의 데이터를 읽는 방식으로는 크게 2가지로 나뉜다.   Full Table Scan : 테이블 전체를 스캔해서 읽는 방식 Index Range Scan : 인덱스를 이용해서 읽는 방식 Full Table Scan 이란 ?시퀀셜 액세스와 Multiblock I/O 방식으로 디스크 블록을 읽는다.한 블록에 속한 모든 레코드를 한 번에 읽어 들이고, 캐시에서 못 찾으면 '한 번의 수면(I/O Call)을 통해 인접한 수십~수백 개의 블록을 한꺼번에 I/O하는 메커니즘이다.이 방식을 사용하는 SQL 은 스토리지 스캔 성능이 좋아지는 만큼 성능도 좋아진다.BUT 시퀀셜 액세스와 multiblock i/o 가 아무리 좋아도수십~수백 건의 "소량" 데이터를 찾을 때 수백만~수천만 건 데이터를 스캔하는 것은 비효..