10. V$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, user_io_waait_time -⑥ , first_load_time, last_active_time -⑦ from v$sql |
① 라이브러리 캐시에 적재된 SQL 커서 자체에 대한 정보
② SQL 커서에 의해 사용되는 메모리 사용량
③ 하드파싱 및 무효화 발생횟수, Parse, Execute, Fetch Call 발생 횟수, Execute 또는 Fetch Call 시점에 처리한 로우 건수 등
④ SQL을 수행하면서 사용된CPU time과 소요시간(microsecond)
⑤ SQL을 수행하면서 발생한 논리적 블럭 읽기와 디스크 읽기, 그리고 소트 발생 횟수
⑥ SQL 수행 도중 대기 이벤트 때문에 지연이 발생한 시간(microsecond)
⑦ 커서가 라이브러리 캐시에 처음 적재된 시점, 가장 마지막에 수행된 시점
|select parsing_schema_name
, count(*) sql_cnt
, count(distinct substr(sql_test, 1, 100)) sql_cnt2
, sum(executions)
, round(avg(buffer)gets/executions)) bugger_gets
, round(avg(disk_read/executions)) disk_reads
, round(avg(row_processd/executions)) rows_processed
, round(avg(elapsed_time/executions/1000000),2) "ELAPSED TIME(AVG)"
, count(case when elapsed_time/executions/1000000 >= 10 then 1 end) "BAD SQL"
, round(max(elapsed_time/executions/1000000),2) "ELAPSED_TIME(MAX)"
from v$sql
where parsing_schema_name in ('원무', '공통', '진료', '사업/행정', '진료지원')
and last_active_time >= to_date('20090315','yyyymmdd')
group by parsing_schema_name;
업무 | SQL 개수 | SQL 개수 (Unique) | 수행횟수 | 논리적 I/O | 디스크 I/O | 처리건수 | 평균소요시간 | 악성SQL (10초 이상) | 최대 소요시간 |
원무 | 360 | 246 | 21,111,011 | 624 | 6 | 16 | 0.02 | 0 | 2.93 |
공통 | 83 | 51 | 26,542,028 | 11,688 | 1,236 | 1,665 | 2.93 | 14 | 18.93 |
진로 | 142 | 14 | 846,818 | 19 | 1 | 1 | 0.01 | 0.71 | 0.71 |
사업/행정 | 2,027 | 1,647 | 4,399,019 | 320 | 128 | 1 | 0.05 | 3 | 48.79 |
진료지원 | 8,680 | 1,882 | 12,064,156 | 3,228 | 216 | 2 | 0.56 | 94 | 273.35 |
구분 | 업무 1 | 업무 2 | 업무 3 | 홈페이지 | 전체 | ||||||||||
누적수량 | 누적분포 | 누적수량 | 누적분포 | 누적수량 | 누적분포 | 누적수량 | 누적분포 | 누적수량 | 누적분포 | ||||||
총수량 | 721 | 100% | 10225 | 100% | 663 | 100% | 36299 | 100% | 47908 | 100% | |||||
시 간 | 0.1초 이하 | 366 | 51% | 8430 | 82% | 379 | 57% | 6703 | 18% | 15878 | 33% | ||||
1초 이하 | 516 | 72% | 9981 | 98% | 560 | 84% | 23430 | 65% | 34487 | 72% | |||||
3초 이하 | 574 | 80% | 10169 | 99% | 604 | 91% | 24064 | 66% | 35411 | 74% | |||||
10초 이하 | 635 | 88% | 10211 | 100% | 630 | 95% | 30880 | 85% | 42356 | 88% | |||||
30초 이하 | 675 | 94% | 10219 | 100% | 653 | 98% | 36290 | 100% | 47837 | 100% | |||||
60초 이하 | 688 | 95% | 10224 | 100% | 660 | 100% | 36295 | 100% | 47867 | 100% | |||||
I/O | 100블럭 이하 | 217 | 30% | 4598 | 45% | 227 | 34% | 3664 | 10% | 8760 | 18% | ||||
1,000블럭 이하 | 391 | 54% | 7174 | 70% | 353 | 53% | 5339 | 15% | 13249 | 28% | |||||
10,000블럭 이하 | 529 | 73% | 9488 | 93% | 509 | 77% | 23236 | 64% | 33791 | 71% | |||||
100,000블럭 이하 | 637 | 88% | 10177 | 100% | 624 | 94% | 23907 | 66% | 35376 | 74% | |||||
1,000,000블럭 이하 | 688 | 95% | 10218 | 100% | 653 | 98% | 30959 | 85% | 42539 | 89% |
SQL> select * from dict
where table_name like 'DBA_HIST_SQL%';
TABLE_NAME COMMENTS
------------------------------ ---------------------------------
DBA_HIST_SQLBIND SQL Bind Information
DBA_HIST_SQLSTAT SQL Historical Statistics Information
DBA_HIST_SQLTEXT SQL Text \\
DBA_HIST_SQL_BIND_METADATA SQL Bind Metadata Information
DBA_HIST_SQL_PLAN SQL Plan Informaition
DBA_HIST_SQL_SUMMARY Summary of SQL Statitics
DBA_HIST_SQL_WORKAREA_HSTGRM SQL Workarea Histogram History
- 마크
begin
dbms_workload_repository.add_colored_sql(sql_id => '803b7z0t84sp7')
end;
- 조회
select * from dba_hist_colored_sql;
- 제거
begin
dbms_workload_repository.remove_colored_sql('803b7z0t84sp7')
end;
select * from table(dbms_xplan.display_awr('803b7z0t84sp7', NULL, NULL, 'basic rows bytes cost'));