PC · IT · DB/Oracle

[오라클] v$sqlarea 쿼리 로그/이력 및 통계 확인 (Query Disk Read/Cost/Time/CPU/IO)

뿌레도 2023. 9. 14. 00:00
728x90
[오라클] v$sqlarea 쿼리 로그/이력 및 통계 확인 (Query Disk Read/Cost/Time/CPU/IO)

 

 v$sqlarea는 Oracle에서 실행된 SQL 문장에 대한 정보를 제공하는 뷰(View)입니다. 이 뷰는 과거에 실행된 SQL 문장에 대한 정보를 제공하므로, 현재 실행 중인 SQL 문장에 대한 정보는 포함되지 않을 수 있습니다.

 

 v$sqlarea 뷰를 사용하면 과거에 실행된 SQL 문장에 대한 통계 정보를 분석하고 성능 문제를 해결하는 데 도움을 줄 수 있습니다. 예를 들어, 실행 횟수가 많은 SQL 문장이나 실행 시간이 오래 걸리는 SQL 문장을 식별하여 최적화할 수 있습니다. 또한, 모듈 또는 사용자별로 SQL 문장의 실행 통계를 비교하여 성능 문제의 원인을 찾을 수도 있습니다.

 

 

SYS 스키마에 대한 조회 결과 값

SYS SCHEMA SQL STATISTICS

 

 

728x90

 

v$sqlarea view 컬럼 및 설명

  • SQL_ID: SQL 문장의 고유 식별자
  • SQL_TEXT: SQL 문장
  • EXECUTIONS: SQL 문장 실행 횟수
  • ELAPSED_TIME: SQL 문장의 총 실행 시간
  • CPU_TIME: SQL 문장의 총 CPU 시간
  • BUFFER_GETS: SQL 문장의 총 버퍼 접근 횟수
  • DISK_READS: SQL 문장의 총 디스크 읽기 횟수
  • ROWS_PROCESSED: SQL 문장에 의해 처리된 총 행 수
  • MODULE: SQL 문장을 실행한 응용 프로그램의 이름
  • USERNAME: SQL 문장을 실행한 사용자

 

 

DB 모니터링 - v$sqlarea를 통한 SQL 통계 정보 확인

SELECT
	parsing_schema_name AS SCHEMA_NAME,
	module,
	hash_value,
	substr(sql_text,1,100) SQL_TEXT,
	executions,
	buffer_gets, --전체 I/O
	disk_reads,
	rows_processed,
	round(buffer_gets/executions,0) Average_IO, -- 1회 I/O
	round(elapsed_time/executions/1000000,2) Average_Elapsed, -- 1회 Elapsed
	round(cpu_time/executions/1000000,2) Average_CPU, -- 1회 CPU
	round(elapsed_time/t.Total_Elapsed*100,2) RATIO_Elapsed, -- Elapsed/ALL Elapsed
	round(cpu_time/t.Total_CPU*100,2) RATIO_CPU -- CPU/ALL CPU
FROM v$sqlarea s,
                (
				SELECT
					sum(elapsed_time) Total_Elapsed,
                    sum(cpu_time) Total_CPU
				FROM v$sqlarea
				) t
WHERE 1=1
AND   s.executions > 0
AND   parsing_schema_name = 'SYS'
AND   MODULE IS NOT NULL
AND   cpu_time/t.Total_CPU >= 0.0005
ORDER BY cpu_time DESC

참고 문서 : 디비카페(dbcafe.co.kr), 오라클 문서 등

 

#v$sqlarea 뷰 #오라클 v$sqlarea #Oracle v$sqlarea 조회 #v$sqlarea 조회 방법 #오라클 SQL 통계 정보 #오라클 DB 모니터링 #오라클 쿼리 실제 CPU 사용량 #오라클 SQL 실제 IO #오라클 SQL 실행시간 확인 #오라클 쿼리문 통계정보

300x250