반응형
다음은 Oracle Database 11g version에서 실행한 쿼리다.
2022-10-01 부터 오늘 일자 기준으로 특정 USER가 실행한 SQL 구문 이력을 확인하기 위해 아래와 같이 구문을 실행했다.
오라클에서 제공하는 v$sqlare 사전을 활용해서 아래 컬럼들을 각각 조회하였다.
- 최근 활동시간 (last_active_time)
- Parsing 한 유저명 (parsing_schema_name)
- SQL 아이디 (sql_id)
- SQL 구문 (sql_text)
SELECT
last_active_time
,parsing_schema_name
,sql_id
,sql_text
FROM v$sqlarea
WHERE
parsing_schema_name = '[USERNAME]' AND
last_active_time > '2022-10-01'
ORDER BY
last_active_time DESC;
설 명
Oracle 에서 제공하는 Reference 중 v$sqlarea 사전은 SQL의 실행정보를 확인할 수 있는 Dictionary 다.
DB 에서 실행되는 SQL은 Shared Pool 영역에 저장되며,
자주 사용되거나 최근 실행된 SQL의 이력은 v$sqlarea에서 확인할 수 있다.
이 v$sqlarea에선 SQL 구문에 대한 Parsing 정보 (SQL Text, Parse Count, Execution count 등)와 함께 메모리, CPU 사용량을 확인할 수 있다.
아래는 v$sqlarea의 사전에서 주요 컬럼들의 상세 설명과 오라클에서 제공하는 v$sqlarea dictionary reference다.
v$sqlarea dictionary Description
Column Name | Column | Description | Explanation |
SQL_TEXT | VARCHAR2(1000) | First thousand characters of the SQL text for the current cursor | 실행된 SQL 구문 이력 |
SQL_ID | VARCHAR2(13) | SQL identifier of the parent cursor in the library cache | 실행된 SQL 구문 ID |
MODULE | VARCHAR2(64) | Contains the name of the module that was executing at the time that the SQL statement was first parsed as set by callingDBMS_APPLICATION_INFO.SET_MODULE | - |
HASH_VALUE | NUMBER | Hash value of the parent statement in the library cache | 해시 값 |
ADDRESS | RAW(4 | 8) | Address of the handle to the parent for this cursor | SQL 구문 주소 |
BUFFER_GETS | NUMBER | Sum of buffer gets over all child cursors | 버퍼 캐시에서 읽은 블록 수 |
DISK_READS | NUMBER | Sum of the number of disk reads over all child cursors | 디스크에서 읽은 블록 수 |
EXECUTIONS | NUMBER | Total number of executions, totalled over all the child cursors | SQL 실행 횟수 |
ROWS_PROCESSED | NUMBER | Total number of rows processed on behalf of this SQL statement | 실행된 SQL 구문에 의해 처리된 행(Rows)의 수 |
ELAPSED_TIME | NUMBER | Elapsed time (in microseconds) used by this cursor for parsing/executing/fetching | SQL 구문의 응답 시간 (실제 소요시간) |
CPU_TIME | NUMBER | CPU time (in microseconds) used by this cursor for parsing/executing/fetching | SQL 구문 처리에 소요된 CPU 시간 |
참고문헌 1. Oracle Database Reference - 9.67 v$sqlarea dictionary
https://docs.oracle.com/database/121/REFRN/GUID-09D5169F-EE9E-4297-8E01-8D191D87BDF7.htm#REFRN30259
반응형
'운영(Ops) 이야기 > 데이터베이스' 카테고리의 다른 글
[Oracle] 계정 락(LOCK) 걸렸을 시 해제하는 방법 (ORA-28000) (0) | 2023.05.09 |
---|---|
[ORACLE] 사용자 (User) 패스워드 변경하는 방법 (0) | 2023.03.26 |
[Oracle] 데이터베이스 명, SID 조회 방법 (0) | 2022.08.08 |
[Oracle] Synonym 사용법 정리 (생성, 조회, 권한, 삭제 등) (0) | 2022.08.08 |
[Oracle] Materialized View 생성 권한 부여 방법 (0) | 2022.08.04 |