SlideShare a Scribd company logo
1 of 22
Oracle Hint, Tuning
튜닝의 도구
- 10053 Event
Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
1.9 튜닝의 도구 : 10053 Event
Explain Plan, GATHER_PLAN_STATISTICS 힌트, DBMS_XPLAN 패키지를 이용해서 CBO의 SQL
실행계획을 확인할 수 있지만 10053 이벤트를 이용하면 보다 구체적으로 CBO의 쿼리변환,
최적화 과정을 시간순으로 모니터링 할 수 있다.
점점 발전하는 CBO의 쿼리실행을 위한 전과정을 확인 가능한데 Query Transformation, Query
Optimization을 과정을 Trace 파일로 제공한다. Trace 파일의 위치는 show parameter
user_dump_dest로 확인 가능하다.
Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
DBMS_XPLAN등에서 확인 할 수 없는 PL/SQL 함수 호출에 대해서도 확인이 가능하다.
CBO에서 쿼리 수행을 위한 전과정을 시간순으로 모니터링 할 수 있는데 아래 내용들을 확인할
수 있다.
• Optimizer가 참조하는 기본 환경설정 파라미터 값 및 Bug Fix에 대한 내용
• Query Transformation 전 과정
• Query Optimization 전 과정(시스템/테이블 통계정보등을 이용해서 Access Path, Join
Type을 결정하는 모든 과정에 대해 확인할 수 있다.)
Transformation 수행을 비용(COST)을 기반으로 하는 CBQT(Cost Based Query
Transformation)를 확인할 수 있다.
Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
10053 이벤트를 발생시키는 방법
• alter session set events ‘10053 trace name context forever’;
• //level 2는 옵티마이저의 기본 파라미터 값들과 Bug Fix 내용이 생략되어 파일사이즈가 좀
작다.
• ALTER SESSION SET EVENTS ‘10053 trace name context forever, level {1 | 2}’;
• ALTER SESSION SET EVENTS '10053 trace name context off';
SQL 쿼리가 하드 파싱 될 때 10053 이벤트 Trace 파일이 만들어 지며 소프트 파싱이 되는
경우에는 생성되지 않는다.
Trace 파일을 찾기 쉽게 하려면 다음처럼 구분자를 지정하면 된다.
ALTER SESSION SET tracefile_identifier = ‘10053_TOPCREDU’;
Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
[실습]
실습을 위한 PL/SQL 함수 생성
CREATE OR REPLACE FUNCTION ecount (
p_deptno IN emp.deptno%TYPE DEFAULT NULL)
RETURN NUMBER AS
v_sql VARCHAR2(500); v_cnt NUMBER;
BEGIN
v_sql := 'select count(empno) from emp e,
(select d.deptno, d.dname
from dept d
where d.deptno in (10, 20)) d
where d.deptno = e.deptno
and 1=1 ';
IF p_deptno IS NOT NULL THEN
v_sql := v_sql || 'AND e.deptno = :deptno ';
ELSE
v_sql := v_sql || 'AND ((1=1) OR :deptno IS NULL) ';
END IF;
DBMS_OUTPUT.PUT_LINE(v_sql);
--dynamic sql execution
EXECUTE IMMEDIATE v_sql INTO v_cnt USING p_deptno;
RETURN v_cnt;
END ecount;
/
Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
SQL> show parameter optimizer --optimizer 관련 파라미터를 확인하자.
NAME TYPE VALUE
------------------------------------ ------- --------
_optimizer_cost_based_transformation string ON ON --비용기반 옵티마이저의 쿼리변환여무
optimizer_capture_sql_plan_baselines boolean FALSE
optimizer_dynamic_sampling integer 2
optimizer_features_enable string 11.2.0.1
……
optimizer_mode string ALL_ROWS
optimizer_secure_view_merging boolean TRUE
optimizer_use_invisible_indexes boolean FALSE
optimizer_use_sql_plan_baselines boolean TRUE
-- 10053 이벤트를 걸고 Trace 파일을 생성하자.
SQL> ALTER SYSTEM FLUSH shared_pool;
SQL> ALTER SESSION SET EVENTS '10053 trace name context forever';
SQL> SET SERVEROUTPUT ON
SQL> BEGIN
DBMS_OUTPUT.PUT_LINE('COUNT: ' ||
ecount(p_deptno=>10)); END;
/
SQL> ALTER SESSION SET EVENTS '10053 trace name context off';
SQL> SHOW PARAMETER user_dump_dest; --Trace파일 위치 확인
Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
-- DBMS정보, OS정보, SQL을 실행한 클라이언트의 정보 표시
Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
-- Query Block 정보와 수행된 SQL을 Parser로부터 받아서 출력
-- 예문은 여러 개의 쿼리블럭으로 구성되어 있다.
Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
-- 10053 이벤트에서 사용되는 용어 설명
Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
-- 옵티마이저의 기본 파라미터 정보 및 버그 픽스 정보
Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
-- 옵티마이저의 기본 파라미터 정보 및 버그 픽스 정보
Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
-- Query Transformation 과정출력(쿼리블럭 마다 수행한다.)
MISC$1 블록은 쿼리변환이 없다.
Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
-- 쿼리블럭 SEL$1, SEL$2는 View Merging이 일어난 것을 확인할 수있다.
-- count(dname) 부분이 count(*)로 변환이 일어났음을 알수있다.
Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
-- FPD(Filter Push-Down)이 발생한 것을 알수있다.
Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
-- 바인드 변수 정보, 함수 호출시 p_deptno를 10으로 할당했다.
Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
-- 시스템 통계정보와 테이블과 인덱스의 통계정보를 출력
Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
-- 통계정보에 따라조인 순서 결정
-- DEPT가 드라이빙
Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
-- 조인방법에 따른 비용계산
Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
-- 조인방법에 따른 비용계산
Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
-- 실행계획, Predicate정보, 생성
Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
-- 최종적으로 변형된 쿼리

More Related Content

What's hot

PHP 7의 새로운 특징과 기능 요약
PHP 7의 새로운 특징과 기능 요약PHP 7의 새로운 특징과 기능 요약
PHP 7의 새로운 특징과 기능 요약정아 손
 
#15.SQL초보에서 Schema Objects까지_국비지원IT학원/구로IT학원/실무교육학원/SQL교육/오라클교육
#15.SQL초보에서 Schema Objects까지_국비지원IT학원/구로IT학원/실무교육학원/SQL교육/오라클교육#15.SQL초보에서 Schema Objects까지_국비지원IT학원/구로IT학원/실무교육학원/SQL교육/오라클교육
#15.SQL초보에서 Schema Objects까지_국비지원IT학원/구로IT학원/실무교육학원/SQL교육/오라클교육탑크리에듀(구로디지털단지역3번출구 2분거리)
 
(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...
(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...
(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
효율적인Sql작성방법 2주차
효율적인Sql작성방법 2주차효율적인Sql작성방법 2주차
효율적인Sql작성방법 2주차희동 강
 
[Swift] Data Structure - Dequeue
[Swift] Data Structure - Dequeue[Swift] Data Structure - Dequeue
[Swift] Data Structure - DequeueBill Kim
 
효율적인Sql작성방법 4주차
효율적인Sql작성방법 4주차효율적인Sql작성방법 4주차
효율적인Sql작성방법 4주차희동 강
 
Data Structure. Linked List
Data Structure. Linked ListData Structure. Linked List
Data Structure. Linked ListSeung-chan Baeg
 
[오라클교육/닷넷교육/자바교육/SQL기초/스프링학원/국비지원학원/자마린교육]#16.SQL초보에서 Schema Objects까지
[오라클교육/닷넷교육/자바교육/SQL기초/스프링학원/국비지원학원/자마린교육]#16.SQL초보에서 Schema Objects까지[오라클교육/닷넷교육/자바교육/SQL기초/스프링학원/국비지원학원/자마린교육]#16.SQL초보에서 Schema Objects까지
[오라클교육/닷넷교육/자바교육/SQL기초/스프링학원/국비지원학원/자마린교육]#16.SQL초보에서 Schema Objects까지탑크리에듀(구로디지털단지역3번출구 2분거리)
 
바다 앱 개발 실패 노하우 1부
바다 앱 개발 실패 노하우 1부바다 앱 개발 실패 노하우 1부
바다 앱 개발 실패 노하우 1부mosaicnet
 
효율적인 SQL 작성방법 1주차
효율적인 SQL 작성방법 1주차효율적인 SQL 작성방법 1주차
효율적인 SQL 작성방법 1주차희동 강
 
개발자들이 흔히 실수하는 SQL 7가지
개발자들이 흔히 실수하는 SQL 7가지개발자들이 흔히 실수하는 SQL 7가지
개발자들이 흔히 실수하는 SQL 7가지JungGeun Lee
 

What's hot (20)

복수행 서브쿼리
복수행 서브쿼리복수행 서브쿼리
복수행 서브쿼리
 
1.7 튜닝의도구 sql autorace
1.7 튜닝의도구 sql autorace1.7 튜닝의도구 sql autorace
1.7 튜닝의도구 sql autorace
 
(오라클힌트,SQL튜닝강좌#25)오라클WITH구문,서브쿼리 팩토링
(오라클힌트,SQL튜닝강좌#25)오라클WITH구문,서브쿼리 팩토링(오라클힌트,SQL튜닝강좌#25)오라클WITH구문,서브쿼리 팩토링
(오라클힌트,SQL튜닝강좌#25)오라클WITH구문,서브쿼리 팩토링
 
PHP 7의 새로운 특징과 기능 요약
PHP 7의 새로운 특징과 기능 요약PHP 7의 새로운 특징과 기능 요약
PHP 7의 새로운 특징과 기능 요약
 
단일행 서브쿼리
단일행 서브쿼리단일행 서브쿼리
단일행 서브쿼리
 
#15.SQL초보에서 Schema Objects까지_국비지원IT학원/구로IT학원/실무교육학원/SQL교육/오라클교육
#15.SQL초보에서 Schema Objects까지_국비지원IT학원/구로IT학원/실무교육학원/SQL교육/오라클교육#15.SQL초보에서 Schema Objects까지_국비지원IT학원/구로IT학원/실무교육학원/SQL교육/오라클교육
#15.SQL초보에서 Schema Objects까지_국비지원IT학원/구로IT학원/실무교육학원/SQL교육/오라클교육
 
(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...
(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...
(국비지원/실업자교육/재직자교육/스프링교육/마이바티스교육추천)#13.스프링프레임워크 & 마이바티스 (Spring Framework, MyB...
 
#17.SQL초보에서 Schema Objects까지_오라클교육/SQL기초교육/구로IT학원/구로디짙털단지역
#17.SQL초보에서 Schema Objects까지_오라클교육/SQL기초교육/구로IT학원/구로디짙털단지역#17.SQL초보에서 Schema Objects까지_오라클교육/SQL기초교육/구로IT학원/구로디짙털단지역
#17.SQL초보에서 Schema Objects까지_오라클교육/SQL기초교육/구로IT학원/구로디짙털단지역
 
효율적인Sql작성방법 2주차
효율적인Sql작성방법 2주차효율적인Sql작성방법 2주차
효율적인Sql작성방법 2주차
 
Rownum
RownumRownum
Rownum
 
[Swift] Data Structure - Dequeue
[Swift] Data Structure - Dequeue[Swift] Data Structure - Dequeue
[Swift] Data Structure - Dequeue
 
효율적인Sql작성방법 4주차
효율적인Sql작성방법 4주차효율적인Sql작성방법 4주차
효율적인Sql작성방법 4주차
 
일반함수 및 조건식 2
일반함수 및 조건식 2일반함수 및 조건식 2
일반함수 및 조건식 2
 
Data Structure. Linked List
Data Structure. Linked ListData Structure. Linked List
Data Structure. Linked List
 
[오라클교육/닷넷교육/자바교육/SQL기초/스프링학원/국비지원학원/자마린교육]#16.SQL초보에서 Schema Objects까지
[오라클교육/닷넷교육/자바교육/SQL기초/스프링학원/국비지원학원/자마린교육]#16.SQL초보에서 Schema Objects까지[오라클교육/닷넷교육/자바교육/SQL기초/스프링학원/국비지원학원/자마린교육]#16.SQL초보에서 Schema Objects까지
[오라클교육/닷넷교육/자바교육/SQL기초/스프링학원/국비지원학원/자마린교육]#16.SQL초보에서 Schema Objects까지
 
바다 앱 개발 실패 노하우 1부
바다 앱 개발 실패 노하우 1부바다 앱 개발 실패 노하우 1부
바다 앱 개발 실패 노하우 1부
 
효율적인 SQL 작성방법 1주차
효율적인 SQL 작성방법 1주차효율적인 SQL 작성방법 1주차
효율적인 SQL 작성방법 1주차
 
개발자들이 흔히 실수하는 SQL 7가지
개발자들이 흔히 실수하는 SQL 7가지개발자들이 흔히 실수하는 SQL 7가지
개발자들이 흔히 실수하는 SQL 7가지
 
3. linked list
3. linked list3. linked list
3. linked list
 
스프링컨트롤러예외처리,@ExceptionHandler, @ControllerAdvice
스프링컨트롤러예외처리,@ExceptionHandler, @ControllerAdvice스프링컨트롤러예외처리,@ExceptionHandler, @ControllerAdvice
스프링컨트롤러예외처리,@ExceptionHandler, @ControllerAdvice
 

Similar to 1.9 튜닝의도구 10053 event

배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle엑셈
 
Fundamentals of Oracle SQL
Fundamentals of Oracle SQLFundamentals of Oracle SQL
Fundamentals of Oracle SQLJAEGEUN YU
 
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1Seok-joon Yun
 
SQL Profile을 이용한 SQL Plan 변경_Wh oracle
SQL Profile을 이용한 SQL Plan 변경_Wh oracleSQL Profile을 이용한 SQL Plan 변경_Wh oracle
SQL Profile을 이용한 SQL Plan 변경_Wh oracle엑셈
 
Clean code
Clean codeClean code
Clean codebbongcsu
 
From MSSQL to MySQL
From MSSQL to MySQLFrom MSSQL to MySQL
From MSSQL to MySQLI Goo Lee
 
SPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracle
SPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracleSPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracle
SPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracle엑셈
 
제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancements제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancementsbeamofhope
 
#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
TX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case study
TX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case studyTX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case study
TX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case study엑셈
 
NLJ BATCH와 부분범위 처리_Wh oracle
NLJ BATCH와 부분범위 처리_Wh oracleNLJ BATCH와 부분범위 처리_Wh oracle
NLJ BATCH와 부분범위 처리_Wh oracle엑셈
 
생체 광학 데이터 분석 AI 경진대회 1위 수상작
생체 광학 데이터 분석 AI 경진대회 1위 수상작생체 광학 데이터 분석 AI 경진대회 1위 수상작
생체 광학 데이터 분석 AI 경진대회 1위 수상작DACON AI 데이콘
 
[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL Tuning[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL TuningPgDay.Seoul
 
[Metatron Discovery ex-pack] Anomaly Detection
[Metatron Discovery ex-pack] Anomaly Detection[Metatron Discovery ex-pack] Anomaly Detection
[Metatron Discovery ex-pack] Anomaly DetectionMetatron
 
Presto User & Admin Guide
Presto User & Admin GuidePresto User & Admin Guide
Presto User & Admin GuideJEONGPHIL HAN
 
#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안중선 곽
 

Similar to 1.9 튜닝의도구 10053 event (20)

배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
배치 프로그램에서 튜닝대상 SQL 추출하기_Wh oracle
 
Fundamentals of Oracle SQL
Fundamentals of Oracle SQLFundamentals of Oracle SQL
Fundamentals of Oracle SQL
 
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
 
SQL Profile을 이용한 SQL Plan 변경_Wh oracle
SQL Profile을 이용한 SQL Plan 변경_Wh oracleSQL Profile을 이용한 SQL Plan 변경_Wh oracle
SQL Profile을 이용한 SQL Plan 변경_Wh oracle
 
Clean code
Clean codeClean code
Clean code
 
From MSSQL to MySQL
From MSSQL to MySQLFrom MSSQL to MySQL
From MSSQL to MySQL
 
SPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracle
SPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracleSPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracle
SPA(SQL Performance Analyze)를 이용한 통계 정보 수집_Wh oracle
 
제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancements제1회 Tech Net Sql Server 2005 T Sql Enhancements
제1회 Tech Net Sql Server 2005 T Sql Enhancements
 
#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#20.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
 
TX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case study
TX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case studyTX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case study
TX락 경험에 의한 시스템 성능 저하 분석 사례_Maxgauge case study
 
NLJ BATCH와 부분범위 처리_Wh oracle
NLJ BATCH와 부분범위 처리_Wh oracleNLJ BATCH와 부분범위 처리_Wh oracle
NLJ BATCH와 부분범위 처리_Wh oracle
 
생체 광학 데이터 분석 AI 경진대회 1위 수상작
생체 광학 데이터 분석 AI 경진대회 1위 수상작생체 광학 데이터 분석 AI 경진대회 1위 수상작
생체 광학 데이터 분석 AI 경진대회 1위 수상작
 
[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL Tuning[Pgday.Seoul 2020] SQL Tuning
[Pgday.Seoul 2020] SQL Tuning
 
PL/SQL - 10g Release1
PL/SQL - 10g Release1PL/SQL - 10g Release1
PL/SQL - 10g Release1
 
[Metatron Discovery ex-pack] Anomaly Detection
[Metatron Discovery ex-pack] Anomaly Detection[Metatron Discovery ex-pack] Anomaly Detection
[Metatron Discovery ex-pack] Anomaly Detection
 
Presto User & Admin Guide
Presto User & Admin GuidePresto User & Admin Guide
Presto User & Admin Guide
 
#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
#19.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)_국비지원IT학원/실업자/재직자환급교육/자바/스프링/...
 
1.8 튜닝의도구 dbms xplan
1.8 튜닝의도구 dbms xplan1.8 튜닝의도구 dbms xplan
1.8 튜닝의도구 dbms xplan
 
Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안Online service 계층별 성능 모니터링 방안
Online service 계층별 성능 모니터링 방안
 
1.3 dbms stats 패키지사용하기
1.3 dbms stats 패키지사용하기1.3 dbms stats 패키지사용하기
1.3 dbms stats 패키지사용하기
 

More from 탑크리에듀(구로디지털단지역3번출구 2분거리)

[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)탑크리에듀(구로디지털단지역3번출구 2분거리)
 
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]탑크리에듀(구로디지털단지역3번출구 2분거리)
 
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]탑크리에듀(구로디지털단지역3번출구 2분거리)
 

More from 탑크리에듀(구로디지털단지역3번출구 2분거리) (20)

자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
자마린.안드로이드 기본 내장레이아웃(Built-In List Item Layouts)
 
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
(스프링프레임워크 강좌)스프링부트개요 및 HelloWorld 따라하기
 
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
자마린 iOS 멀티화면 컨트롤러_네비게이션 컨트롤러, 루트 뷰 컨트롤러
 
[IT교육/IT학원]Develope를 위한 IT실무교육
[IT교육/IT학원]Develope를 위한 IT실무교육[IT교육/IT학원]Develope를 위한 IT실무교육
[IT교육/IT학원]Develope를 위한 IT실무교육
 
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
[아이오닉학원]아이오닉 하이브리드 앱 개발 과정(아이오닉2로 동적 모바일 앱 만들기)
 
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
[뷰제이에스학원]뷰제이에스(Vue.js) 프로그래밍 입문(프로그레시브 자바스크립트 프레임워크)
 
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
[씨샵학원/씨샵교육]C#, 윈폼, 네트워크, ado.net 실무프로젝트 과정
 
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
[정보처리기사자격증학원]정보처리기사 취득 양성과정(국비무료 자격증과정)
 
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
[wpf학원,wpf교육]닷넷, c#기반 wpf 프로그래밍 인터페이스구현 재직자 향상과정
 
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
(WPF교육)ListBox와 Linq 쿼리를 이용한 간단한 데이터바인딩, 새창 띄우기, 이벤트 및 델리게이트를 통한 메인윈도우의 ListB...
 
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
[자마린교육/자마린실습]자바,스프링프레임워크(스프링부트) RESTful 웹서비스 구현 실습,자마린에서 스프링 웹서비스를 호출하고 응답 JS...
 
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios 3.3.5 추가적인 사항
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios  3.3.5 추가적인 사항[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios  3.3.5 추가적인 사항
[구로자마린학원/자마린강좌/자마린교육]3. xamarin.ios 3.3.5 추가적인 사항
 
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
3. xamarin.i os 3.3 xamarin.ios helloworld 자세히 살펴보기 3.4.4 view controllers an...
 
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
5. 서브 쿼리(sub query) 5.1 서브 쿼리(sub query) 개요 5.2 단일행 서브쿼리(single row sub query)
 
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld(단일 뷰) 실습[...
 
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
(닷넷,자마린,아이폰실습)Xamarin.iOS HelloWorld 실습_멀티화면,화면전환_Xamarin교육/Xamarin강좌
 
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
C#기초에서 윈도우, 스마트폰 앱개발 과정(c#.net, ado.net, win form, wpf, 자마린)_자마린학원_씨샵교육_WPF학원...
 
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
자바, 웹 기초와 스프링 프레임워크 & 마이바티스 재직자 향상과정(자바학원/자바교육/자바기업출강]
 
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
3. xamarin.i os 3.1 xamarin.ios 설치, 개발환경 3.2 xamarin.ios helloworld_자마린학원_자마린...
 
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
3. 안드로이드 애플리케이션 구성요소 3.2인텐트 part01(안드로이드학원/안드로이드교육/안드로이드강좌/안드로이드기업출강]
 

1.9 튜닝의도구 10053 event

  • 1. Oracle Hint, Tuning 튜닝의 도구 - 10053 Event
  • 2. Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event 1.9 튜닝의 도구 : 10053 Event Explain Plan, GATHER_PLAN_STATISTICS 힌트, DBMS_XPLAN 패키지를 이용해서 CBO의 SQL 실행계획을 확인할 수 있지만 10053 이벤트를 이용하면 보다 구체적으로 CBO의 쿼리변환, 최적화 과정을 시간순으로 모니터링 할 수 있다. 점점 발전하는 CBO의 쿼리실행을 위한 전과정을 확인 가능한데 Query Transformation, Query Optimization을 과정을 Trace 파일로 제공한다. Trace 파일의 위치는 show parameter user_dump_dest로 확인 가능하다.
  • 3. Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event DBMS_XPLAN등에서 확인 할 수 없는 PL/SQL 함수 호출에 대해서도 확인이 가능하다. CBO에서 쿼리 수행을 위한 전과정을 시간순으로 모니터링 할 수 있는데 아래 내용들을 확인할 수 있다. • Optimizer가 참조하는 기본 환경설정 파라미터 값 및 Bug Fix에 대한 내용 • Query Transformation 전 과정 • Query Optimization 전 과정(시스템/테이블 통계정보등을 이용해서 Access Path, Join Type을 결정하는 모든 과정에 대해 확인할 수 있다.) Transformation 수행을 비용(COST)을 기반으로 하는 CBQT(Cost Based Query Transformation)를 확인할 수 있다.
  • 4. Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event 10053 이벤트를 발생시키는 방법 • alter session set events ‘10053 trace name context forever’; • //level 2는 옵티마이저의 기본 파라미터 값들과 Bug Fix 내용이 생략되어 파일사이즈가 좀 작다. • ALTER SESSION SET EVENTS ‘10053 trace name context forever, level {1 | 2}’; • ALTER SESSION SET EVENTS '10053 trace name context off'; SQL 쿼리가 하드 파싱 될 때 10053 이벤트 Trace 파일이 만들어 지며 소프트 파싱이 되는 경우에는 생성되지 않는다. Trace 파일을 찾기 쉽게 하려면 다음처럼 구분자를 지정하면 된다. ALTER SESSION SET tracefile_identifier = ‘10053_TOPCREDU’;
  • 5. Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event [실습] 실습을 위한 PL/SQL 함수 생성 CREATE OR REPLACE FUNCTION ecount ( p_deptno IN emp.deptno%TYPE DEFAULT NULL) RETURN NUMBER AS v_sql VARCHAR2(500); v_cnt NUMBER; BEGIN v_sql := 'select count(empno) from emp e, (select d.deptno, d.dname from dept d where d.deptno in (10, 20)) d where d.deptno = e.deptno and 1=1 '; IF p_deptno IS NOT NULL THEN v_sql := v_sql || 'AND e.deptno = :deptno '; ELSE v_sql := v_sql || 'AND ((1=1) OR :deptno IS NULL) '; END IF; DBMS_OUTPUT.PUT_LINE(v_sql); --dynamic sql execution EXECUTE IMMEDIATE v_sql INTO v_cnt USING p_deptno; RETURN v_cnt; END ecount; /
  • 6. Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event SQL> show parameter optimizer --optimizer 관련 파라미터를 확인하자. NAME TYPE VALUE ------------------------------------ ------- -------- _optimizer_cost_based_transformation string ON ON --비용기반 옵티마이저의 쿼리변환여무 optimizer_capture_sql_plan_baselines boolean FALSE optimizer_dynamic_sampling integer 2 optimizer_features_enable string 11.2.0.1 …… optimizer_mode string ALL_ROWS optimizer_secure_view_merging boolean TRUE optimizer_use_invisible_indexes boolean FALSE optimizer_use_sql_plan_baselines boolean TRUE -- 10053 이벤트를 걸고 Trace 파일을 생성하자. SQL> ALTER SYSTEM FLUSH shared_pool; SQL> ALTER SESSION SET EVENTS '10053 trace name context forever'; SQL> SET SERVEROUTPUT ON SQL> BEGIN DBMS_OUTPUT.PUT_LINE('COUNT: ' || ecount(p_deptno=>10)); END; / SQL> ALTER SESSION SET EVENTS '10053 trace name context off'; SQL> SHOW PARAMETER user_dump_dest; --Trace파일 위치 확인
  • 7. Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event -- DBMS정보, OS정보, SQL을 실행한 클라이언트의 정보 표시
  • 8. Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event -- Query Block 정보와 수행된 SQL을 Parser로부터 받아서 출력 -- 예문은 여러 개의 쿼리블럭으로 구성되어 있다.
  • 9. Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event
  • 10. Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event -- 10053 이벤트에서 사용되는 용어 설명
  • 11. Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event -- 옵티마이저의 기본 파라미터 정보 및 버그 픽스 정보
  • 12. Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event -- 옵티마이저의 기본 파라미터 정보 및 버그 픽스 정보
  • 13. Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event -- Query Transformation 과정출력(쿼리블럭 마다 수행한다.) MISC$1 블록은 쿼리변환이 없다.
  • 14. Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event -- 쿼리블럭 SEL$1, SEL$2는 View Merging이 일어난 것을 확인할 수있다. -- count(dname) 부분이 count(*)로 변환이 일어났음을 알수있다.
  • 15. Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event -- FPD(Filter Push-Down)이 발생한 것을 알수있다.
  • 16. Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event -- 바인드 변수 정보, 함수 호출시 p_deptno를 10으로 할당했다.
  • 17. Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event -- 시스템 통계정보와 테이블과 인덱스의 통계정보를 출력
  • 18. Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event -- 통계정보에 따라조인 순서 결정 -- DEPT가 드라이빙
  • 19. Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event -- 조인방법에 따른 비용계산
  • 20. Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event -- 조인방법에 따른 비용계산
  • 21. Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event -- 실행계획, Predicate정보, 생성
  • 22. Oracle Hint, Tuning_ 튜닝의 도구 : 10053 Event -- 최종적으로 변형된 쿼리