devnoong.log
[DB] Oracle USE_HASH hint 사용하기
DB/Oracle 2023. 7. 20. 15:53

현상 Live 운영 테이블에 데이터가 존재하지 않고, 백업용 데이터로 만들어진 테이블에서 데이터를 산출해야하는 경우가 존재했다. 문제점 Live 테이블 데이터의 경우, 기본적으로 index나 partition이 되어있어 대량의 데이터를 산출할때 해당 조건들을 이용해서 산출을 진행했다. 하지만, 백업용 데이터이기때문에 별도로 구성된 index나 partition이 되어있지 않아 index힌트 이용할 경우 추출 시간이 오래 걸려 active session이 오래 살아 있어 문제가 될 가능성이 존재한다. USE_HASH 사용 USE_HASH 힌트를 사용해 산출 시간을 단축시켰다. USE_HASH 힌트는 Oracle에서 사용되는 옵티마이저 힌트 중 하나로, 해시조인을 강제로 사용하도록 지시하는 역할을 한다. 해..

article thumbnail
[DB] ORACLE PARALLEL HINT 부여하기
DB/Oracle 2023. 2. 7. 15:13

데이터를 산출해야하는 건이 있었는데 요청건수가 너무 많아서 일반 SQL 문만으로는 불가능했었습니다. COUNT로 대략 건수를 확인해봤을때 14594519 건정도....? 1차로 실행계획을 확인 후에 조인으로 연결된 FROM 절이 PK를 타고 있지 않아서 해당 부분 PK 탈수 있도록 서브쿼리로 변경했습니다 두번 TABLE FULL SCAN하는것을 그나마 한번으로 변경....ㅜ.ㅜ 2차로 힌트절을 이용해보기 위해 관련된 힌트절을 찾다가 PARALLEL 힌트를 알게 되어 공유하고자 합니다. 페러럴 힌트는 병렬 처리 작업을 지원해줍니다. 기본적으로는 한개의 프로세스를 통해서 실행하는데 페러럴 힌트를 이용하면 여러개의 쓰레드에 분산하여 N개의 프로세스로 작업을 수행하기때문에 빠른 속도를 확인해볼 수 있습니다. 하..

article thumbnail
[DB] 힌트 예제 정리
DB/Oracle 2022. 7. 28. 15:11

힌트에 대한 정의와 사용법 일부를 이전 포스트에 기록을 진행했었다. https://devnoong.tistory.com/4 [DB] 힌트에 대해서 힌트(Hint)란? 오라클 옵티마이저(Optimizer) 대신 개발자가 직접 최적의 실행 경로를 작성해 주는 것이다. 단, 힌트, 인덱스, 조인의 개념을 정확히 알고 사용하지 않은 무분별한 힌트의 사용은 성능 devnoong.tistory.com 이번 포스트에는 사용법과 예제에 대해 조금 더 알아보고자한다. https://livesql.oracle.com/ Oracle Live SQL This tutorial provides an introduction to the Structured Query Language (SQL), learn how to create ..

article thumbnail
[DB] 힌트에 대해서
DB/Oracle 2022. 7. 27. 16:26

힌트(Hint)란? 오라클 옵티마이저(Optimizer) 대신 개발자가 직접 최적의 실행 경로를 작성해 주는 것이다. 단, 힌트, 인덱스, 조인의 개념을 정확히 알고 사용하지 않은 무분별한 힌트의 사용은 성능의 저하를 초래하기 때문에 최적의 실행 경로를 알고 있을 경우 적절하게 사용하여야 한다. 사용이유 Select 조회 컬럼이 인덱스 컬럼으로만 구성되어 있을 경우, 인덱스 영역에서 스캔하기때문에 조회 속도도 빠르고 인덱스 컬럼이 설정된 대로 정렬이 돼서 조회가 된다. 하지만 인덱스컬럼뿐만 아니라 다른 컬럼도 포함되어 있을 경우 FullTableScan을 시도하기때문에 조회 속도가 느리고 정렬이 되지 않는다. 하지만 힌트절을 사용한다면, 인덱스 영역에서 인덱스가 생성된 순서대로 스캐닝을 시도하고 정의 해..