Actions innovantes pour stimuler les démarches d'insertion volontaires par l’...Cri - Greta du Velay
Aider les professionnels qui accompagnent des personnes éloignées de l'emploi à comprendre le concept de motivation et à mettre en œuvre des actions d’insertion basées sur la motivation. Témoignages et expériences
de Belgique, de France et d’ailleurs. Guide à l’usage des professionnels de l’insertion.
Mission, Vision, Permission: How to silence the voice that holds you backDavender Gupta
Présenté - Presented
Toastmasters District 61 Autumn Celebration, Montréal, QC
2022-10-22
(c)2022 Davender Gupta - Tous droits réservés - All rights reserved
Titre : MVP - Mission, Vision, Permission : Comment se débarrasser de ces pensées qui vous limitent ?
Présentateur : Davender Gupta, DTM
Des études montrent que notre cerveau génère, en moyenne, cinq pensées par minute. L’anxiété fait augmenter ce taux de façon exponentielle.
Le dialogue avec soi-même, lorsqu'il est positif, peut nous pousser à l'excellence. En revanche, lorsqu'il est négatif, le bavardage interne neutralise toute préparation, bloquant notre capacité à agir.
Découvrez trois outils puissants pour transformer votre discours interne et atteindre des performances optimales au travail et dans votre vie personnelle.
Davender Gupta a développé sa boîte à outils d'état d'esprit positif alors qu'il se remettait d'un échec commercial cuisant en 2001.
Cette expérience lui a permis de découvrir sa véritable vocation : aider les entrepreneurs à développer la mentalité, les compétences et les systèmes nécessaires pour créer des entreprises rentables et efficaces.
Au fil des ans, il a aidé plus de 500 start-ups et entreprises. Il est maintenant conseiller en technologie industrielle au Conseil national de recherches du Canada.
Toastmaster depuis 2005, il a mené ses clubs, secteurs et divisions à atteindre le statut de Président distingué plusieurs fois.
Feuille de travail fournie (en personne et virtuelle)
Workshop Descriptions English
Title: MVP - Mission, Vision, Permission: How to get rid of those limiting thoughts?
Presenter: Davender Gupta, DTM
Studies show that our brain generates, on average, five thoughts per minute. Anxiety increases this rate exponentially.
The dialogue with oneself, when it is positive, can push us to excellence. In contrast, when negative, internal chatter neutralizes all preparation, blocking our ability to act.
Discover three powerful tools to transform your internal discourse and achieve peak performance at work and in your personal life.
Davender Gupta developed his positive mindset toolkit as he recovered from a bitter business failure in 2001.
This experience allowed him to discover his true vocation: to help entrepreneurs develop the mindset, skills and systems necessary to create profitable and efficient businesses.
Over the years, he has helped over 500 start-ups and businesses. He is now an Industrial Technology Advisor to the National Research Council of Canada.
A toastmaster since 2005, he has led his clubs, areas and divisions to achieve Distinguished President status multiple times.
This document provides an overview of visual SQL tuning (VST) methodology. It discusses finding problem SQL, studying the execution plan, and fixing performance issues. Key steps include identifying slow queries, analyzing the execution plan to understand how the SQL is executing, and then fixing issues such as missing indexes or statistics. The document emphasizes drawing a map of tables and joins to visualize the query structure and help determine join order and filtering. It covers techniques for two, three, and four table joins, including different join types and applying filters.
The Oracle Exadata Database Machine X5-2 is a pre-configured system optimized for running Oracle Database. It features scale-out database and storage servers, PCIe flash storage, and a high-speed InfiniBand network. Unique software algorithms implement database intelligence in storage and networking to deliver higher performance, capacity, and availability compared to other platforms. The Exadata Database Machine can scale from small to extremely large configurations by connecting multiple racks.
*If you see the screen is not good condition, downloading please.*
MariaDB Optimization
- 풀 테이블 스캔
- ORDER BY 처리(Using filesort)
- GROUP BY 처리
- DISTINCT 처리
- 임시 테이블(Using Tempoary)
- 인덱스 컨디션 푸시다운(Index Condition Pushdown, ICP)
- 멀티 레인지 리드(Multi Range Read)
- 인덱스 머지(Index merge)
- 테이블 조인
- 서브 쿼리
데이터베이스 수업도 듣고 선임자가 건네준 모델대로 구현해본 경험이 제법 있더라도, 막상 자신이 책임자가 되어 백지 위에 엔터티 박스와 관계선을 그려야 한다면 막막함이 앞을 가린다. 이전에 본 듯한 패턴을 흉내 내 그림을 그려보지만 수백, 수천의 엔터티 홍수 속에서 제대로 가고 있다는 확신이 서지 않는다.
저자는 이처럼 너무도 거대한 현업의 복잡함에 압도되어 길을 잃고 고생하는 후임들의 안타까운 모습에 직접 멘토가 되어주고자 이 책을 쓰기 시작했다. 내공이 깊어야 연공이 자유롭듯, 그 본질을 꿰고 있다면 어떤 업무가 주어지든 막힘없이 헤쳐나갈 수 있다. 짧은 호흡으로 경쾌하게 풀어낸 이야기들을 통해 따스한 온기가 묻어 있는 저자의 노하우를 내 것으로 만들자.
FILTER 연산은 데이터 추출 시 필터링이 일어나고 있음을 알려주는 SQL ROW 연산인데 WHERE 조건 절에서 인덱스를 사용하지 못할 때 발생한다. NESTED LOOP 방식으로 해석할 수 있는데 서브쿼리라면 메인쿼리 로우를 하나씩 읽을때 마다 서브쿼리를 한 번씩 실행하는 형태이다.
FILTER OPERATION은 IN, NOT IN, EXISTS, NOT EXISTS 를 사용하는 경우 발견할 수 있는 OPERATION이며 중첩 루프조인(Nedted Loop Join)과 유사하게 움직인다. 메인쿼리의 결과에 대해 서브쿼리의 결과값을 버퍼에 임시저장해 같거나 다른 것을 찾아 나가는 방식이다. 이러한 과정이 드라이빙되는 테이블의 각 로우에 대해 일어나기 때문에 NESTED LOOP JOIN과 유사하다고 볼 수있다.
SQL*Plus에서 사용자는 자동으로 Optimizer가 만드는 실행계획과 통계정보를 얻을 수 있다. 이런 경우 AUTOTRACE를 사용하며 DML문을 성공적으로 수행 시 실행계획과 통계정보가 만들어지며 DML문의 성능 튜닝을 위한 방법으로 자주 이용된다.
SET AUTOTRACE를 사용하기 위해선 실행 계획용 테이블(PLAN_TABLE)이 존재해야 하며 구문을 활성화하기 위해 SET AUTOTRACE ON, 비활성화 하기 위해 SET AUTOTRACE OFF하면 된다. 참고로 SET AUTOTRACE에서 사용할 수 있는 옵션은 다음과 같다.
SQL*Plus에서 사용자는 자동으로 Optimizer에서 실행계획과 통계정보를 얻을 수 있다. AUTOTRACE를 사용하며 DML문을 성공적으로 수행 시 만들어지며 DML문의 성능 튜닝을 위한 방법으로 자주 이용 된다.
SET AUTOTRACE를 사용하기 위해선 실행 계획용 테이블(PLAN_TABLE)이 존재해야 하며 구문을 활성화 하기 위해 SET AUTOTRACE ON, 비활성화 하기위해 SET AUTOTRACE OFF하고 하면 됩니다. 참고로 SET AUTOTRACE에서 사용 할 수 있는 옵션은 다음과 같다.
*If you see the screen is not good condition, downloading please.*
MariaDB Optimization
- 풀 테이블 스캔
- ORDER BY 처리(Using filesort)
- GROUP BY 처리
- DISTINCT 처리
- 임시 테이블(Using Tempoary)
- 인덱스 컨디션 푸시다운(Index Condition Pushdown, ICP)
- 멀티 레인지 리드(Multi Range Read)
- 인덱스 머지(Index merge)
- 테이블 조인
- 서브 쿼리
데이터베이스 수업도 듣고 선임자가 건네준 모델대로 구현해본 경험이 제법 있더라도, 막상 자신이 책임자가 되어 백지 위에 엔터티 박스와 관계선을 그려야 한다면 막막함이 앞을 가린다. 이전에 본 듯한 패턴을 흉내 내 그림을 그려보지만 수백, 수천의 엔터티 홍수 속에서 제대로 가고 있다는 확신이 서지 않는다.
저자는 이처럼 너무도 거대한 현업의 복잡함에 압도되어 길을 잃고 고생하는 후임들의 안타까운 모습에 직접 멘토가 되어주고자 이 책을 쓰기 시작했다. 내공이 깊어야 연공이 자유롭듯, 그 본질을 꿰고 있다면 어떤 업무가 주어지든 막힘없이 헤쳐나갈 수 있다. 짧은 호흡으로 경쾌하게 풀어낸 이야기들을 통해 따스한 온기가 묻어 있는 저자의 노하우를 내 것으로 만들자.
FILTER 연산은 데이터 추출 시 필터링이 일어나고 있음을 알려주는 SQL ROW 연산인데 WHERE 조건 절에서 인덱스를 사용하지 못할 때 발생한다. NESTED LOOP 방식으로 해석할 수 있는데 서브쿼리라면 메인쿼리 로우를 하나씩 읽을때 마다 서브쿼리를 한 번씩 실행하는 형태이다.
FILTER OPERATION은 IN, NOT IN, EXISTS, NOT EXISTS 를 사용하는 경우 발견할 수 있는 OPERATION이며 중첩 루프조인(Nedted Loop Join)과 유사하게 움직인다. 메인쿼리의 결과에 대해 서브쿼리의 결과값을 버퍼에 임시저장해 같거나 다른 것을 찾아 나가는 방식이다. 이러한 과정이 드라이빙되는 테이블의 각 로우에 대해 일어나기 때문에 NESTED LOOP JOIN과 유사하다고 볼 수있다.
SQL*Plus에서 사용자는 자동으로 Optimizer가 만드는 실행계획과 통계정보를 얻을 수 있다. 이런 경우 AUTOTRACE를 사용하며 DML문을 성공적으로 수행 시 실행계획과 통계정보가 만들어지며 DML문의 성능 튜닝을 위한 방법으로 자주 이용된다.
SET AUTOTRACE를 사용하기 위해선 실행 계획용 테이블(PLAN_TABLE)이 존재해야 하며 구문을 활성화하기 위해 SET AUTOTRACE ON, 비활성화 하기 위해 SET AUTOTRACE OFF하면 된다. 참고로 SET AUTOTRACE에서 사용할 수 있는 옵션은 다음과 같다.
SQL*Plus에서 사용자는 자동으로 Optimizer에서 실행계획과 통계정보를 얻을 수 있다. AUTOTRACE를 사용하며 DML문을 성공적으로 수행 시 만들어지며 DML문의 성능 튜닝을 위한 방법으로 자주 이용 된다.
SET AUTOTRACE를 사용하기 위해선 실행 계획용 테이블(PLAN_TABLE)이 존재해야 하며 구문을 활성화 하기 위해 SET AUTOTRACE ON, 비활성화 하기위해 SET AUTOTRACE OFF하고 하면 됩니다. 참고로 SET AUTOTRACE에서 사용 할 수 있는 옵션은 다음과 같다.
predicate란 인덱스 접근시의 컬럼 액세스 정보, 조인 정보, filter 정보를 각 Opreation 단위로 나타낸 것이다.
access predicate : 데이터 블록을 어떤 방식으로 Access해서 읽었는지를 나타내는 것이다.
filter predicate : 데이터 블록을 읽고 나서 데이터를 어떻게 필터링 했는지를 나타낸다.
세미 조인은 보통 EXISTS를 사용하는 서브쿼리의 형태로 나타나며 이러한 경우 서브 쿼리에 인덱스가 존재하지 않는다면 상당히 비효율적인데 SEMI-JOIN이 일어나도록 유도한다면 성능의 향상을 꽤 할 수 있다. 즉 인덱스 없이 EXISTS를 사용하는 쿼리라면 HASH_SJ or MERGE_SJ or NL_SJ 힌트를 이용해서 세미조인이 일어나도록 푸는 것이 좋다.
[2013 CodeEngn Conference 09] wh1ant - various tricks for linux remote exploitsGangSeok Lee
2013 CodeEngn Conference 09
시간이 지나면 지날수록 리눅스에서는 보안 기술에 의해 원격 공격이 힘들어지고 있다. 원격 버퍼 오버플로우 공격을 위한 몇가지 트릭을 공개할 것이다. 지금까지 공격은 주로 취약점 코드에 의존성이 높거나 brute force를 사용한 방식이였다. 이번 발표에서의 공격 기술은 NULL 을 우회하여 exploit을 1바이트씩 분할하고 취약한 서버에 파일을 생성한뒤 공격하며, 단순 brute force방식에 벗어나 ASLR를 어떻게 빨리 찾아내는지 보여줄 것이다.
http://codeengn.com/conference/09
http://codeengn.com/conference/archive
This document discusses different architectures for running containers and Kubernetes on AWS. It begins by showing a simple VPC configuration and then expands on it by adding availability zones, load balancing, auto scaling, and Route53 for high availability. It then discusses using ECS or EKS instead of manually launching EC2 instances. The document also provides links about Docker for beginners and how Kubernetes works on EKS, including concepts like clusters, pods, deployments, and services. It concludes by thanking the audience.
The document discusses the differences between static servers, cloud servers, Docker, and Kubernetes. It provides an overview of key concepts in cloud computing including EC2, ECS, EKS, VPCs, subnets, security groups, containers, pods, deployments, services, and nodes. Diagrams illustrate the architecture and relationships between these components in an AWS cloud environment.
AWS DEV DAY SEOUL 2017 Buliding Serverless Web App - 직방 Image ConverterSeok-joon Yun
This document discusses using Amazon Web Services (AWS) to build a serverless web application. It describes deploying an Express.js web framework application on AWS Lambda and API Gateway without a server. The application uses services like AWS Lambda, API Gateway, AWS RDS, AWS S3, and CloudFront. It provides steps for configuring the Express.js app to run on AWS Lambda and calling it through API Gateway.
Pro typescript.ch03.Object Orientation in TypeScriptSeok-joon Yun
The document discusses object-oriented programming concepts in TypeScript such as classes, inheritance, polymorphism, and mixins. It provides code examples of implementing interfaces and classes to demonstrate inheritance and composition. Mixins are discussed as a way to reuse behavior across class hierarchies by applying multiple base classes to a derived class using a mixin function. The examples show how to define mixin behaviors as classes and apply them to implementing classes to achieve multiple inheritance in TypeScript.
The document discusses new C++11 features including:
1. Uniform initialization syntax using curly braces {} which can initialize objects in a clear and consistent way compared to parentheses () or equals =.
2. Initializer lists and how they allow initializing objects from a list of values. However, initializer lists may prefer certain constructors unintuitively.
3. How uniform initialization helps prevent narrowing conversions and most vexing parse issues that could occur in C++98 code.
[KOSSA] C++ Programming - 18th Study - STL #4Seok-joon Yun
This document discusses C++ string constructors and methods. It shows how to initialize strings from char arrays and substrings, set string values, append and push back characters, and access the C string representation. It also demonstrates using stacks and queues, including pushing/popping elements and accessing the front element of a queue.
2. 반도의 흔한 Oracle Tuning 절차
Explain Plan
AutoTrace
SQL*Trace
실행계획 확인
수행 시 실제 작업량 측정
내부 수행 절차상
부하를 일으키는 단계 확인
문제
파악
Query 변경
Hint 사용
Index 조정
그래도
안되면 ?
반정규화
집계Table 생성
4. AutoTrace
얼추 모든 면에서 SQL*Trace보다 안 좋다고 하던데…
Orange에서도 그냥 확인이 가능하고
굳이 SQLPlus에서 할려면…
http://www.slideshare.net/seokjoonyun9/20150612-oracle-1 참조
5. SQL*Trace
얼추 강려크하긴 한데… 쪼메 귀찮은 작업이 많이 필요하다.
하지만 Orange Plan Tool에서는 편하게 확인이 가능
굳이 SQLPlus에서 할려면…
http://www.slideshare.net/seokjoonyun9/20150612-oracle-1 참조
Compile Time : 2015/07/09 13:31:22
Trace File : c:oraclediagrdbmsorclorcltraceorcl_ora_11048.trc
Trace Version : 11.2.0.1.0
********************************************************************************
SELECT * FROM SCOTT.EMP
WHERE DEPTNO = :"SYS_B_0"
Call Count CPU Time Elapsed Time Disk Query Current Rows
------- ------ -------- ------------ ---------- ---------- ---------- ----------
Parse 1 0.000 0.000 0 0 0 0
Execute 1 0.000 0.001 0 0 0 0
Fetch 1 0.000 0.000 0 3 0 0
------- ------ -------- ------------ ---------- ---------- ---------- ----------
Total 3 0.000 0.001 0 3 0 0
Misses in library cache during parse : 1
Optimizer Goal : ALL_ROWS
Parsing user : SYS (ID=0)
Rows Row Source Operation
------- -----------------------------------------------------------------------
0 TABLE ACCESS FULL EMP (cr=3 pr=0 pw=0 time=0 us cost=2 size=190 card=5)
SCOTT.EMP
---------
Rows=14 Blocks=1
Empty_Blocks=0 Avg_Space=0
Chain_Count=0 Avg_Row_Length=38
Avg_Space_Freelist_Blocks=0 Freelist_Blocks=0
Sample_Size=14 Last_Analyzed='2015/06/14 13:48:32'
Partitioned='NO' Tablespace='SYSTEM'
Column Name Nullable Column Type Distinct Buckets
-------------------------------- -------- ------------------- ---------- ----------
EMPNO NUMBER(4) 14 1
ENAME VARCHAR2(10) 14 1
JOB VARCHAR2(9) 5 1
MGR NUMBER(4) 6 1
HIREDATE DATE 13 1
SAL NUMBER(7,2) 12 1
COMM NUMBER(7,2) 4 1
DEPTNO NUMBER(2) 3 1
INDEX
-----------------------------------------------------------------------------
EMP_DEPTNO : DEPTNO
Type='NORMAL', Uniq='NO', Distinct=3, Rows=14, Last_Analyzed='2015/06/18 17:13:25'
I_EMP_EMPNO : EMPNO
Type='NORMAL', Uniq='YES', Distinct=14, Rows=14, Last_Analyzed='2015/06/23 10:49:35'
I_EMP_EMPNO_ENAME : EMPNO,ENAME
Type='NORMAL', Uniq='NO', Distinct=14, Rows=14, Last_Analyzed='2015/06/23 10:48:23'
I_EMP_ENAME : ENAME
Type='NORMAL', Uniq='NO', Distinct=14, Rows=14, Last_Analyzed='2015/06/22 18:16:37'
EMP_SAL : SAL
Type='NORMAL', Uniq='NO', Distinct=12, Rows=14, Last_Analyzed='2015/06/18 17:34:45'
뽀나스로 스키마 정보까지
6. SQL*Trace
Compile Time : 2015/07/09 13:31:22
Trace File : c:oraclediagrdbmsorclorcltraceorcl_ora_11048.trc
Trace Version : 11.2.0.1.0
********************************************************************************
SELECT * FROM SCOTT.EMP
WHERE DEPTNO = :"SYS_B_0"
Call Count CPU Time Elapsed Time Disk Query Current Rows
------- ------ -------- ------------ ---------- ---------- ---------- ----------
Parse 1 0.000 0.000 0 0 0 0
Execute 1 0.000 0.001 0 0 0 0
Fetch 1 0.000 0.000 0 3 0 0
------- ------ -------- ------------ ---------- ---------- ---------- ----------
Total 3 0.000 0.001 0 3 0 0
Misses in library cache during parse : 1
Optimizer Goal : ALL_ROWS
Parsing user : SYS (ID=0)
Rows Row Source Operation
------- -----------------------------------------------------------------------
0 TABLE ACCESS FULL EMP (cr=3 pr=0 pw=0 time=0 us cost=2 size=190 card=5)
Column Description
Call Parse : Cursor를 Parsing 하고
Execution Plan을 생성하는데 대한 통계
Execute : Cursor의 실행 단계에 대한 통계
Fetch : Record를 실제로 Fetch하는데 대한 통계
Count 수행 횟수
CPU CPU 사용 시간
Elapsed 수행 소요 시간 : CPU time + Wait Time
( = Response 시점 – Call 시점)
Disk Disk로부터 읽은 Block 수
Query Consistent Mode에서 읽은 Buffer Block 수
Current Current Mode에서 읽은 Buffer Block수
Rows 읽거나 갱신한 처리 건수
Column Description
cr Consistent Mode Block Read
pr Physical Disk Block Read
pw Physical Disk Block Write
time 소요시간 ( um : microsecond)
cost 현재 Step에서 야기된 cost
size 현재 Step에서의 data size
card cardinality
Trace File에서 각 항들의 의미
DML : Parse Call + Execute Call
SELECT : Parse Call + Execute Call + Fetch Call (1회 이상 : 전송 Record 수 / ArraySize)
8. v$sysstat
• v$sysstat : Instance 가동 후 현재까지 누적 통계치
• v$sesstat : 개별 세션별로 확인
• v$mystat : 현재 접속해 있는 본인 세션
SQL이 수행되는 동안 지속적으로 그 항목들에 대한 누적 통계치를 저장
• v$sysstat 활용 방안 (예시)
1. 변화량 기반 분석
특정 시점들의 v$sysstat 값들을 별도 Table로 저장 한 뒤
그 사이의 delta 값으로 분석
(자세한 설명은 생략. 왜 ? 그냥 AWR을 활용하면 되니깐)
2. Ratio 기반 분석
Database의 전반적인 Health Check Ratio 값들을 연산
9. Ratio 분석
• Buffer Nowait %
buffer Block을 읽으려 할 때 buffer busy waits 대기 없이 곧바로 읽기에 성공한 비율
SELECT ROUND(100*(1-BFWT/GETS),2) "Buffer Nowait %"
FROM
(SELECT SUM(COUNT) BFWT FROM V$WAITSTAT),
(SELECT VALUE GETS FROM V$SYSSTAT WHERE NAME = 'session logical reads')
10. Ratio 분석
• Redo Nowait %
Redo Log를 기록할 공간을 요청하지 않고 곧바로 Redo Entry를 기록한 비율
비율이 낮다면 Log Switching 이 느리거나 너무 자주 발생함을 의미
Redo Log File 크기를 늘리거나, 덜 바쁜 Disk로 옮겨야 한다.
SELECT ROUND(100*(1-RLSR/RENT),2) "Redo Nowait %"
FROM
(SELECT VALUE RLSR FROM V$SYSSTAT WHERE NAME = 'redo log space requests'),
(SELECT VALUE RENT FROM V$SYSSTAT WHERE NAME = 'redo entries')
11. Ratio 분석
• Buffer Hit %
Disk 읽기를 수반하지 않고 Buffer Cache에서 Block 찾기에 성공한 비율
SELECT ROUND(100*(1-(PHYR-PHYRD-NVL(PHYRDL,0))/GETS),2) "Buffer Hit %"
FROM
(SELECT VALUE PHYR FROM V$SYSSTAT WHERE NAME = 'physical reads'),
(SELECT VALUE PHYRD FROM V$SYSSTAT WHERE NAME = 'physical reads direct'),
(SELECT VALUE PHYRDL FROM V$SYSSTAT WHERE NAME = 'physical reads direct (lob)'),
(SELECT VALUE GETS FROM V$SYSSTAT WHERE NAME = 'session logical reads')
12. Ratio 분석
• Latch Hit %
Latch 경합 없이 첫 번째 시도에서 곧바로 Latch를 획득한 비율
SELECT ROUND(100*(1-SUM(MISSES)/SUM(GETS)),2) "Latch Hit %"
FROM V$LATCH
13. Ratio 분석
• Library Hit %
Library Cache에 이미 적재된 SQL Cursor를 찾아서 바로 Hit한 확률
Pin 히트율은 Execute단계와 관련이 있고,
Get 히트율은 Parse 단계와 관련이 있다.
SELECT ROUND(100 * SUM(PINHITS) / SUM(PINS) , 2) "Library Cache Pin Hit %",
ROUND(100 * SUM(GETHITS) / SUM(GETS) , 2) "Library Cache Get Hit %"
FROM V$LIBRARYCACHE
14. Ratio 분석
• Soft Parse %
Execution Plan이 Library Cache에서 찾아져 Hard Parsing을 하지 않고 SQL을 수행한 비율
이 비율이 낮다면 Bind Variable를 사용하도록 개선해야 한다.
SELECT ROUND(100 * (1 - HPRS / PRSE), 2) "Soft Parse %"
FROM
(SELECT VALUE HPRS FROM V$SYSSTAT WHERE NAME = 'parse count (hard)'),
(SELECT VALUE PRSE FROM V$SYSSTAT WHERE NAME = 'parse count (total)')
15. Ratio 분석
• Execute to Parse %
Parse Call 없이 바로 SQL을 수행한 비율
SELECT ROUND(100 * (1 - PRSE / EXE), 2) "Execute to Parse %"
FROM
(SELECT VALUE EXE FROM V$SYSSTAT WHERE NAME = 'execute count'),
(SELECT VALUE PRSE FROM V$SYSSTAT WHERE NAME = 'parse count (total)')
16. Ratio 분석
• Parse CPU to Parse Elapsed %
Parsing 총 시간 중 CPU time이 차지한 비율
이 값이 낮다면 Parsing 도중 Wait가 많이 발생했음을 의미
SELECT DECODE(PRSELA,
0, TO_NUMBER(NULL),
ROUND(PRSCPU / PRSELA * 100, 2)) "Parse CPU to Parse Elapsed %"
FROM
(SELECT VALUE PRSELA FROM V$SYSSTAT WHERE NAME = 'parse time elapsed'),
(SELECT VALUE PRSCPU FROM V$SYSSTAT WHERE NAME = 'parse time cpu')
17. Ratio 분석
• Non-Parse CPU %
SQL 수행하면서 사용한 전체 CPU time 중 Parsing 이외의 작업의 비율
이 비율이 낮다면 Parsing 부하를 줄이도록 개선해야 한다.
SELECT DECODE(TCPU,
0, TO_NUMBER(NULL),
ROUND(PRSCPU / TCPU * 100, 2)) "Non-Parse CPU %"
FROM
(SELECT VALUE TCPU FROM V$SYSSTAT WHERE NAME = 'CPU used by this session'),
(SELECT VALUE PRSCPU FROM V$SYSSTAT WHERE NAME = 'parse time cpu')
18. Ratio 분석
• In-memory Sort %
전체 Sort 중 In-memory Sort로 수행한 비율
SELECT DECODE((SRTM+SRTD),
0, TO_NUMBER(NULL),
ROUND(100 * SRTM / (SRTD + SRTM), 2)) "In-memory Sort %"
FROM
(SELECT VALUE SRTM FROM V$SYSSTAT WHERE NAME = 'sorts (memory)'),
(SELECT VALUE SRTD FROM V$SYSSTAT WHERE NAME = 'sorts (disk)')
19. Ratio 분석
• Memory Usage %
Shared Pool 내에서 현재 사용 중인 메모리 비율
SELECT ROUND(100 * (1 - SUM(DECODE(NAME, 'free memory', BYTES))
/ SUM(BYTES)), 2) "Memory Usage %"
FROM V$SGASTAT
WHERE POOL = 'shared pool'