10. V$SQL
2010.06.13 23:46
수많은 SQL을 모두 튜닝 불가
☞ Pareto's Law or 리처드 코치의 80/20 법칙 적용
- 주기적으로 사용되는 상위 10% 이내의 프로그램만 집중적으로 튜닝해도 효과적
V$SQL
- 개별 SQL 커서의 수행통계 분석 목적으로도 많이 활용
- 집중 튜닝이 필요한 대상 SQL 선정 시 활용
- 튜닝 전후 성능 향상도를 비교할 목적으로 통계 낼 시 활용
- 라이브러리 캐시에 캐싱돼 있는 각 Child 커서에 대한 수행통계 표현
- v$sqlarea는 Parent 커서에 대한 수행 통계 표현 (자세한 커서정보는 4장)
- 쿼리가 수행을 마칠 때마다 갱신
- 긴 수행의 쿼리는 5초 단위로 갱신
- 통계치 값은 누적 값 표현 ☞ SQL 수행 횟수로 나눈 평균값 (SQL 한번 당 일량과 시간)을 이용한 분석 필요
SELECT sql_id, child_number, sql_text, sql_fulltext, parsing_schema_name
, sharable_mem, persistent_mem, runtime_mem
, loads, invalidations, parse_calls, executions, fetches, rows_processed
, cpu_time, elapsed_time
, buffer_gets, disk_reads, sorts
, application_wait_time, concurrency_wait_time
, cluster_wait_time, uwer_io_wait_time
, first_load_time, last_active_time
from v$sql
, sharable_mem, persistent_mem, runtime_mem
, loads, invalidations, parse_calls, executions, fetches, rows_processed
, cpu_time, elapsed_time
, buffer_gets, disk_reads, sorts
, application_wait_time, concurrency_wait_time
, cluster_wait_time, uwer_io_wait_time
, first_load_time, last_active_time
from v$sql
line 1 라이브러리 캐시에 적재된 SQL 커서 자체에 대한 정보
line 2 SQL커서에 의해 사용되는 메모리 사용량
line 3, 4 하드파싱 및 무효화 발생횟수, Parse, Execute, Fetch Call 발생 횟수 및 처리 로우 건수
line 5 SQL 수행하면서 사용된 CPU Time과 소요시간(microsecond)
line 6 SQL 수행하면서 발생한 논리적 블록 읽기와 디스크 읽기, 소트 발생 횟수
line 7, 8 SQL 수행 도중 대기 이벤트 때문인 지연 발생 시간(microsecond)
line 9 커서가 라이브러리 캐시에 처음 적재된 시점, 가장 마지막에 수행된 시점
Top SQL 기준
- Parse Calls
- Executions
- Buffer Gets
- Disk Reads
- Elapsed Time
- CPU Time
- Wait Time
- Version Count
- Sharable Memory
Colored SQL (오라클 11g 부터 추가) - 수행통계가 AWR에 주기적으로 수집되도록 마킹
- AWR 수집 시 Top SQL 선정 기분과 상관없이 SQL 수행 통계 저장
- 스냅샷 시점에 캐시에서 밀려나고 없는 SQL 정보는 저장 X
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
47 |
2. 트랜잭션 수준 읽기 일관성
![]() | 휘휘 | 2010.06.06 | 20213 |
46 | 3. 비관적 vs. 낙관적 동시성 제어 | 휘휘 | 2010.06.06 | 8329 |
45 | 4. 동시성 구현 사례 | 토시리 | 2010.06.06 | 11079 |
44 |
5. 오라클 Lock
![]() | 휘휘 | 2010.06.06 | 26512 |
43 |
7. Response Time Analysis 방법론과 OWI
![]() | balto | 2010.06.13 | 8202 |
42 | 8. Statspack / AWR | balto | 2010.06.13 | 12910 |
41 | 9. ASH(Active Session History) | 실천하자 | 2010.06.13 | 15731 |
40 | 11. End-To-End 성능관리 | 휘휘 | 2010.06.13 | 8248 |
39 |
12. 데이터베이스 성능 고도화 정석 해법
![]() | 휘휘 | 2010.06.13 | 7248 |
38 |
5. V$SYSSTAT
[1] ![]() | 토시리 | 2010.06.13 | 9977 |
» | 10. V$SQL | 실천하자 | 2010.06.13 | 12803 |
36 | 6. V$SYSTEM_EVENT | 토시리 | 2010.06.14 | 6641 |
35 |
3. 라이브러리 캐시 구조
![]() | balto | 2010.06.27 | 9957 |
34 |
4. 커서 공유
![]() | balto | 2010.06.27 | 9324 |
33 |
1. SQL과 옵티마이저
![]() | 휘휘 | 2010.06.27 | 7326 |
32 |
2. SQL 처리과정
![]() | 휘휘 | 2010.06.27 | 20932 |
31 | 4장. 라이브러리 캐시 최적화 원리 | 휘휘 | 2010.06.27 | 7032 |
30 | 5. 바인드 변수의 중요성 | 실천하자 | 2010.06.27 | 11862 |
29 |
6. 바인드 변수의 부작용과 해법
![]() | 실천하자 | 2010.06.27 | 14868 |
28 |
7. 세션 커서 캐싱
![]() | 토시리 | 2010.06.29 | 10711 |