TKPROF 통계정보 내용
【 Parse 】
- SQL문이 파싱되는 단계에 대한 통계
- 새로 파싱을 했거나, 공유 풀에서 찾아 온 것도 포함됨.
- 단, PL/SQL 내에서 반복 수행(Loop)된 SQL이나 PL*SQL에서 보존 커서(Hold cursor)를 지정한 경우에는 한 번만 파싱됨.
【 Execute 】
- SQL문의 실행단계에 대한 통계임.
- UPDATE, INSERT, DELETE 문들은 여기에 수행한 결과가 나타나게 됨.
- 전체범위 방식으로 처리된 결과가 여러 건인 경우는 주로 여기에 많은 값이 나타나며
Fetch에는 아주 적은 값이 나타남.
【 Fetch 】
- SQL문이 실행되면서 Fetch된 통계임.
- 부분범위 방식으로 처리된 SELECT 문들이나 전체범위 처리를 한 후 한 건을 추출하는 경우 (AGGREGATE, 전체집계, COUNT 등)는 주로 여리게 많은 값들이 나타나고 EXECUTE에는 아주 적은 값이 나타남.
【 COUNT 】
- SQL문이 파싱된 횟수, 실행된 횟수, FETCH가 수행된 횟수
【 CPU 】
- PARSE, EXECUTE, FETCH가 실제로 사용한 CPU 시간(1/100초 단위)
【 ELAPSED 】
- 작업의 시작에서 종료시까지 실제 소요된 총 시간
【 DISK 】
- 디스크에서 읽혀진 데이타 블록의 수
【 QUERY 】
- 메모리 내에서 변경되지 않은 블록을 읽거나 다른 세션에 의해 변경되었으나 아직 Commit
되지 않아 복사해 둔 스냅샷 블록을 읽은 블록의 수
- SELECT 문에서는 거의가 여기에 해당하며 UPDATE, DELETE, INSERT시에는 소량만 발생됨.
【 CURRENT 】
- 현 세션에서 작업한 내용을 Commit하지 않아 오로지 자신에게만 유효한 블록(Dirty Block)을 액세스한 블록 수
- 주로 UPDATE, INSERT, DELETE 작업시 많이 발생
- SELECT문에서는 거의 없으나 아주 적은 양인 경우가 대부분임.
【 Logical I/O 】 : QUERY + CURRENT
【 ROWS 】
- SQL문을 수행한 결과에 의해 최종적으로 액세스된 ROW의 수
- 서브쿼리에 의해서 추출된 ROW는 제외됨.
- 만약 SUM, AVG, MIN, COUNT 등의 그룹함수를 사용한 경우라면 큰 의미가 없음.
TKProf를 사용한 Trace 파일 분석시 참고사항
⇒ execute, fetch의 횟수가 동일하다는 것은 SQL 수행시마다 기본키에 의해 한건씩만 처리되고 있다는 것을 의미한다. 만약 pares가 1인데 execurte와 fetch가 100이라면 루프가 100번 수행되면서(어프리케이션은 한번만 수행되고 SQL은 루프 내에서 반복수행되었다. 왜냐하면, 어플리케이션이 여러번 실행되었다면 비록 SQL이 실제 파싱하지 않고 Shared SQL Area에서 찾아 왔다고 해도 parse의 횟수는 증가되기 때문이다) 보관커서 상태의 SQL이 한 건씩을 추출한 상태이다. 이 경우의 SQL문은 'SELECT ... INTO ...'형식으로 사용되었을 것이다.
⇒ parse가 1이고 execute가 1이며, fetch가 100이라면 SQL은 단 한번 수행되었고 (루프 내에서 수행되지 않았음) 페치만 연속해서 100번을 수행한 것이다. 이 경우의 SQL문은 대개 'DECLARE CURSOR'로 선언한 SQL이 'FETCH ... INTO ...'에 의해 SQLCODE가 '1403'(Date Not Found)일 때까지 수행되었거나 부분범위 처리에 의해 일정 양만큼만 수행하고 멈추었을 때이다.
⇒ parse : execute : fetch의 비율은 공통 작업이 여러번 수행되면 그 배수로 나타난다. 예를 들면 parse : execute : fetch가 10 : 10 : 1000인 경우는 1 : 1 : 100인 작업이 10번 수행되었다는 것을 의미한다.
⇒ fetch가 10인데 rows가 100이라면 운반단위가 10인 다중처리(Array Processing)를 사용하여 한번 페치마다 10건의 로우가 추출되었음을 의미한다.
⇒ 트레이스의 중간부분에 'Misses im library cache during parse : 1'이라는 문장이 있다. 이것은 공유 SQL 영역에서 파상된 결과를 찾지 못하여 실제 파싱작업을 하게 되었다는 것을 의미한다.
⇒ 최종적으로 추출된 로우의 수는 적으나 많은 CPU 시간이 소요되었다면 이것은 분명히 적절한 액세스 경로로 수해되지 않았음을 의미한다.
⇒ CPU 시간과 ELAPSED 시간의 차이는 적을수록 좋다. 만약 CPU시간에 비해 ELAPSED 시간이 훨씬 많다면, 그 원인은 다음 중 하나일 가능성이 높다.
- 주변의 다른 세션에서 많은 부하를 발생시켜 시스템 전체에 부하가 많이 걸려있는 경우
- 어플리케이션의 문제이거나 다량의 데이타 처리에 따른 I/O 병목현상이 발생한 경우
⇒ disk, query, current의 숫자는 적을수록 좋다. 이 숫자들이 커다는 것은 메모리 공유영역의 적중률(Hit Ratio)이 낮다는 것을 의미한다.
⇒ Overall totals For All Statements에서 적중률 계산은 다음과 같다.
- (Execute 'disk' + Fetch 'Disk')
/(Execute 'query' + Execute 'current' + Fetch 'query' + Fetch 'Current')
* 100
- 이 값이 10%이상이라면 메모리 캐쉬에서 데이타를 찾는 비율(적중률)이 너무 낮은 것
⇒ 다음은 아주빠른 응답이 요구되는 온라인프로세싱시스템의 경우에서만 적용되는 규칙들이다.
- 모든 Execute 'CPU'가 1초보다 적어야 한다.
- Parse 'CPU' 시간이 Parse당 0.01초보다 적어야 한다.
- 작은 테이블(200로우 이하)에서만 전체 테이블 스캔이 일어나게 한다.
- sysdate만 찾아오거나, 오직 연산만 하거나, 'SELECT.. INTO ...'로 값을
복사하는 경우를 위해서 DUAL 테이블들을 불필요하게 사용하는 것은 모두 없앤다.
- 동시에 작업되는 SQL들은 가능한 PL/SQL을 사용한다.
- 조인시에 옵티마이져가 적절한 드라이빙 테이블을 선택하는지를 확인하거나, 여러개의 조건들 중에서 주(드라이빙)가 되는 조건들과 부(체크)가 되는 조건들을 확인한다. 또한 적적한 인덱스가 사용될 수 있는지를 확인하여 주조건의 처리범위가 넓지 않도록 항상 유의한다.
Adobe, Autodesk, DaouOffice, Hitachi, Microsoft, Nethru, Rapid7, Symantec, Trend Micro, WareValley...Etc
Posts List
Translate
2014년 5월 8일 목요일
2014년 4월 29일 화요일
20140429_DAP도전
운 좋은 DAsP 합격으로 DAP에 바로 도전 .
공부관련 모든 자료 이곳에
자료들을 모으는 공간
UML 을 활용한 Usecase 작도순서
구조적 방법론, 객체지향 방법론
데이터베이스 설계와 이용
오라클 성능 고도화 1, 2 교재 활용
엔티티 정의서, 속성 정의서
전사아키텍처 이해
데이터 요건 분석
데이터 표준화
데이터 모델링
데이터베이스 설계와 이용
데이터 품질 관리 이해
공부관련 모든 자료 이곳에
자료들을 모으는 공간
UML 을 활용한 Usecase 작도순서
구조적 방법론, 객체지향 방법론
데이터베이스 설계와 이용
오라클 성능 고도화 1, 2 교재 활용
엔티티 정의서, 속성 정의서
전사아키텍처 이해
데이터 요건 분석
데이터 표준화
데이터 모델링
데이터베이스 설계와 이용
데이터 품질 관리 이해
2014년 4월 1일 화요일
TFT란 무엇인가?
니들이 TFT 를 알어 ?
TFT(Task Force Team)
: 회사에서 중요한 일, 새로운 일(프로젝트)을 추진할 때 각 부서 및 해당 부서에서 선발된 TASK에 관련된 인재들이 임시 팀을 만들어 활동, TFT업무가 부가되는 것이 보통이다.
즉 Task 목적을 가지고 그 목적을 추진하기 위해 임시로 모인 집단
그 임무가 완수되면 곧바로 해체되는 집단으로 회사 등에서 많이 쓰이는 용어
TFT(Task Force Team)
: 회사에서 중요한 일, 새로운 일(프로젝트)을 추진할 때 각 부서 및 해당 부서에서 선발된 TASK에 관련된 인재들이 임시 팀을 만들어 활동, TFT업무가 부가되는 것이 보통이다.
즉 Task 목적을 가지고 그 목적을 추진하기 위해 임시로 모인 집단
그 임무가 완수되면 곧바로 해체되는 집단으로 회사 등에서 많이 쓰이는 용어
2014년 3월 18일 화요일
종합심사제 기본 용어 정리
1.사업주관부서
: 종합심사낙찰제 대상공사에 관한 발주계획의 수립,발주설계,계약체결 후 사업시행 등에 관한 업무를 총괄하는 부서
2.계약부서
: 종합심사낙찰제 대상공사에 관한 입찰,계약체결,대가지급 등의 업무를 수행하는 부서
3.심사주관부서
: 기술관리부서
4.심사위원회
: 물량 및 시공계획 심사를 위하여 심사주관부서의 장이 구성한 위원회
5.법정경비
: 관련법령에 의거 계상이 의무화 되어 있는 경비
산재보험료,고용보험료,국민건강보험료,노인장기요양보험료,국민연금보험료,
산업안전보건 관리비,환경보전비,퇴직공제부금비,건설하도급대금 지급보증서 발급비,
건설기계대여금 지급보증서 발급비,부가가치세 등
6.경비 등 합계
: 공종별 입찰금액에 포함되지 않은 경비로서 법정경비를 제외
기타경비,품질관리비,공사이행보증수수료,제비율제외 항목 및 공사손해보험료 등
7.PS항목
: 사전에 물량이나 금액을 확정할 수 없는 등의 사유로 인해 현장 설명시 배부하는 물량내역서상에 금액 등을 지정한 항목
8.설계서
: 공사시방서,설계도면,현장설명서,공종별 목적물 물량내역서(“물량내역서”)
9.물량내역서
: 계약예규에 따라 수공 또는 입찰자가 작성하여 공종별 목적물을 구성하는 품목 또는 비목과 동 품목 또는 비목의 규격,수량,단위 등이 표시된 내역서
10.산출내역서
: 입찰금액 또는 계약금액을 구성하는 물량,규격,단위,단가 등을 기재한 내역서
11.세부공종
: 물량내역서 및 산출내역서에 물량 및 단위가 표시된 최소단위 공종
13.균형가격
: 입찰금액을 심사하기 위한 기준에 따라 산정한 금액
14.균형단가
: 균형가격 산정방법과 동일한 방법으로 세부 공종별로 산정한 단가
15.추정물량
: 발주기관이 입찰공고시 제공한 물량내역서의 물량으로 입찰자의 산출내역서 작성을 돕기 위해 제시한 물량을 말하며,추정가격 1,000억원이상 공사에 한하여 적용
16.입찰물량
: 입찰자가 발주기관이 제시한 설계서,물량내역서의 추정물량 등을 참고하여 작성한 산출내역서상의 물량을 말하며,추정가격 1,000억원이상 공사에 한하여 적용한다.
17.최종물량
: 산출내역서의 입찰물량 적정성을 판단하기 위하여 제4호에 따른 심사위원회에서 확정한 물량을 말하며,추정가격 1,000억원이상 공사에 한하여 적용
2014년 3월 13일 목요일
[IT] 블로그 소스 코드 올리기
요즘 블로그를 하다가...... 소스를 올리는 자주 있는데 ...
다른 사람 블로그는 왜이렇게 깔끔하게 소스를 올릴까라는 생각을 안하다가 ....
오늘 갑자기 들어서 해결 !
Color Scripter - 사이트 접속 !
1. 웹에서 실행 클릭
2. 소스 언어 선택
3. 소스 입력 후 복사하기 클릭!
다른 사람 블로그는 왜이렇게 깔끔하게 소스를 올릴까라는 생각을 안하다가 ....
오늘 갑자기 들어서 해결 !
Color Scripter - 사이트 접속 !
1. 웹에서 실행 클릭
3. 소스 입력 후 복사하기 클릭!
4. 블로그 복사 화면 .... 우와 ; 마돈나 깔끔하다 ..
5. 블로그 화면 .... 그 동안 난 뭘한걸까 .. 다 바꿔야겠다 .. 시간을 내서 !
2014년 3월 12일 수요일
[SQL] 월별 집계 Query
SQL Query
설명은 ... 나중에 하자 ..시간을 내서
설명은 ... 나중에 하자 ..시간을 내서
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
SELECT T2.DVSN_DEPT_CD,
T2.PJT_CD,
T2.PJT_NM,
T2.CON_AMT,
T1.CLFC,
T1.BF_TOT_AMT,
T1.A01 AS T01,
T1.A02 AS T02,
T1.A03 AS T03,
T1.A04 AS T04,
T1.A05 AS T05,
T1.A06 AS T06,
T1.A07 AS T07,
T1.A08 AS T08,
T1.A09 AS T09,
T1.A10 AS T10,
T1.A11 AS T11,
T1.A12 AS T12,
T1.YY_AMT,
T1.TOT_AMT,
(T2.CON_AMT - T1.TOT_AMT) AS REM_AMT
FROM (SELECT T1.PJT_CD,
T1.CLFC,
SUM (CASE WHEN T1.YM < '2014' || '01' THEN T1.AMT END) BF_TOT_AMT,
SUM (CASE T1.YM WHEN '2014' || '01' THEN T1.AMT END) A01,
SUM (CASE T1.YM WHEN '2014' || '02' THEN T1.AMT END) A02,
SUM (CASE T1.YM WHEN '2014' || '03' THEN T1.AMT END) A03,
SUM (CASE T1.YM WHEN '2014' || '04' THEN T1.AMT END) A04,
SUM (CASE T1.YM WHEN '2014' || '05' THEN T1.AMT END) A05,
SUM (CASE T1.YM WHEN '2014' || '06' THEN T1.AMT END) A06,
SUM (CASE T1.YM WHEN '2014' || '07' THEN T1.AMT END) A07,
SUM (CASE T1.YM WHEN '2014' || '08' THEN T1.AMT END) A08,
SUM (CASE T1.YM WHEN '2014' || '09' THEN T1.AMT END) A09,
SUM (CASE T1.YM WHEN '2014' || '10' THEN T1.AMT END) A10,
SUM (CASE T1.YM WHEN '2014' || '11' THEN T1.AMT END) A11,
SUM (CASE T1.YM WHEN '2014' || '12' THEN T1.AMT END) A12,
SUM (CASE WHEN T1.YM LIKE '2014' || '%' THEN T1.AMT END) YY_AMT,
SUM (CASE WHEN T1.YM <= '2014' || '12' THEN T1.AMT END) TOT_AMT
FROM (SELECT T1.PJT_CD,
T1.YM,
CASE T2.RNUM
WHEN 1 THEN '01'
WHEN 2 THEN '02'
WHEN 3 THEN '03'
WHEN 4 THEN '04'
END
CLFC,
CASE T2.RNUM
WHEN 1 THEN T1.SALES_PLAN_AMT
WHEN 2 THEN T1.SALES_ARST_AMT
WHEN 3 THEN T1.BLCLCT_PLAN_AMT
WHEN 4 THEN BLCLCT_ARST_AMT
END
AMT
FROM ITA0090 T1, ( SELECT LEVEL RNUM
FROM DUAL
CONNECT BY LEVEL <= 4) T2
WHERE T1.YM <= '2014' || '12') T1
GROUP BY T1.PJT_CD, T1.CLFC) T1,
ITA0020 T2
WHERE 1=1
AND T1.PJT_CD(+) = T2.PJT_CD
ORDER BY
T2.PJT_CD, T1.CLFC
|
2014년 3월 8일 토요일
[종합심사제] 종합심사 낙찰 흐름도
[종합심사제] 종합심사 낙찰 흐름도
평가 기준 선정 ⇒ 투찰내역서등록 ⇒ 예정가격 등록 ⇒ 투찰 금액 확인
⇒ 무효입찰여부판정 ⇒ 균형가격산정 ⇒ 단가심사 ⇒ 공사수행능력등록
⇒ 사회적책임 등록 ⇒ 업체선정완료
평가 기준 선정 ⇒ 투찰내역서등록 ⇒ 예정가격 등록 ⇒ 투찰 금액 확인
⇒ 무효입찰여부판정 ⇒ 균형가격산정 ⇒ 단가심사 ⇒ 공사수행능력등록
⇒ 사회적책임 등록 ⇒ 업체선정완료
피드 구독하기:
글
(
Atom
)
