본문 바로가기

SQL/ORACLE(PL)

(5)
쿼리 최적화를 위한 오라클(Oracle) 실행계획(Execution Plan) SQL 쿼리 실행 시 실행 계획 보기: SQL 쿼리를 실행할 때 대부분의 SQL 개발 도구(예: SQL*Plus, SQL Developer 등)나 프로그래밍 언어의 라이브러리(예: JDBC, ODP.NET 등)는 실행 계획을 자동으로 생성합니다. SQL 실행 중에 "EXPLAIN PLAN FOR" 문을 사용하여 실행 계획을 수동으로 생성할 수도 있습니다. AUTOTRACE 사용: SQL 개발 도구에서 AUTOTRACE를 사용하여 실행 계획을 확인할 수 있습니다. AUTOTRACE는 실행된 쿼리에 대한 세부 정보와 실행 계획을 제공합니다. DBMS_XPLAN 패키지 사용: DBMS_XPLAN 패키지는 실행 계획을 제공하는 다양한 함수를 제공합니다. 이를 사용하여 실행 계획을 보거나 세부 정보를 가져올 수 ..
hint 사용이유 오라클 힌트(Oracle Hint)는 SQL 쿼리 옵티마이저에게 쿼리 실행 계획을 조정하도록 지시하는 특별한 주석입니다. 힌트는 쿼리를 최적화하는 데 도움이 되지 않는 경우에만 사용해야 합니다. 힌트를 사용하여 쿼리 실행 계획을 조정할 수 있으므로 특정 상황에서 성능을 향상시키는 데 유용할 수 있습니다. 그러나 오라클 데이터베이스가 업그레이드되면서 옵티마이저가 발전하면서 힌트를 사용하는 것은 피하는 것이 좋습니다. 힌트는 일반적으로 다음과 같은 형식으로 쿼리에 포함됩니다. SELECT /*+ hint */ column1, column2 FROM table_name; 여기서 hint는 실제 힌트입니다. 힌트의 사용은 주석 기호인 /*+ */ 안에 넣어집니다. 오라클에서 가장 널리 사용되는 힌트 중 일부는 ..
[Oracle] SQL 실행계획 및 트레이스 [1] 질의 도구를 이용한 실행계획 및 트레이스(SQL Developer) 1.Plan(계획설명) Sql 질의를 실행하기전 나의 질의문을 어떻게 실행 할 것인지에 대한 계획. **Sql Developer 에서 F10단축키를 이용한다. 2.Trace(자동추적) Sql 질의를 실행한후 나의 질의문을 Oracle이 어떻게 실행하였는지를 보여준다. **Sql Developer에서 F6을 이용한다. [2] Explain plan for를 이용한 실행계획 EXPLAIN plan FOR 질의문; 확인 : SELECT * FROM TABLE(dbms_xplan.diisplay); [3] SQL PLUS의 autotrace를 활용하는 방법도 존재한다.(autotrace 권한부여)
Oracle Hint의 정의와 종류 힌트는 SQL 튜닝의 핵심부분으로 일종의 지시구문이다. SQL에 포함되어 쓰여져 Optimizer의 실행 계획을 바꿀수 있도록 말그대로 Optimizer에게 힌트를 주는 것이다. Optiomizer라고 해서 항상 최선의 실행 계획을 수립할 수는 없으므로 테이블이나 인덱스의 잘못된 실행 계획을 사용자가 직접 바꿀 수 있도록 도와주는 지시구문. 오라클 힌트 종류 SELECT /*+ INDEX(idx_col1) */ id, password, name FROM emp; SELECT /*+ ORDERED INDEX(b idx_col1) */ id, password, name FROM emp a , depart b ※ 주의! 주석 표시 뒤에 '+' 기호가 있다. ◆ INDEX Access Operation 관련 H..
optimizer 옵티마이저(Optimizer)는 SQL을 가장 빠르고 효율적으로 수행할 최적(최저비용)의 처리경로를 생성해 주는 DBMS 내부의 핵심엔진이다. 사용자가 구조화된 질의언어(SQL)로 결과집합을 요구하면, 이를 생성하는데 필요한 처리경로는 DBMS에 내장된 옵티마이저가 자동으로 생성해준다. 옵티마이저가 생성한 SQL 처리경로를 실행계획(Execution Plan)이라고 부른다. 1. 사용자가 던진 쿼리 수행을 위하여 후보군이 될만한 실행계획을 찾는다. 2. 데이터 딕셔너리에 미리 수집해 놓은 오브젝트 통계 및 시스템 통계정보를 이용해 각 실행계획의 예상 비용을 산정한다. 3. 각 실행 계획을 비교하여 최저 비용을 갖는 하나를 선택한다.