DESC V$EVENT_NAME;
Name Null? Type
--------------- -------- ---------------
EVENT# NUMBER
EVENT_ID NUMBER
NAME VARCHAR2(64)
PARAMETER1 VARCHAR2(64)
PARAMETER2 VARCHAR2(64)
PARAMETER3 VARCHAR2(64)
WAIT_CLASS_ID NUMBER
WAIT_CLASS# NUMBER
WAIT_CLASS VARCHAR2(64)
NAME | 대기 이벤트의 이름을 의미함. 보통 기다리는 원인을 이름으로 사용함. |
PARAMETER1 | 어떤 자원을 획득하려고 대기하는지에 대한 정보 #1 |
PARAMETER2 | 어떤 자원을 획득하려고 대기하는지에 대한 정보 #2 |
PARAMETER3 | 어떤 자원을 획득하려고 대기하는지에 대한 정보 #2 |
WAIT_CLASS | 대기 이벤트의 분류 |
'PARAMETER1, PARAMETER2, PARAMETER3'으로 이루어진 자원을 획득하려고 하지만, NAME이라는 이유로 인해 획득하지 못하고 대기함.
-- 1. 오라클 버전
SELECT *
FROM v$version;
-- 2. 대기이벤트 종류
SELECT WAIT_CLASS,
COUNT(*)
FROM V$EVENT_NAME
GROUP BY WAIT_CLASS
ORDER BY 2 DESC;
KENZO:xsoftdb:SYSTEM >
1 SELECT *
2 FROM v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for 32-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
KENZO:xsoftdb:SYSTEM >
1 SELECT WAIT_CLASS,
2 COUNT(*)
3 FROM V$EVENT_NAME
4 GROUP BY WAIT_CLASS
5 ORDER BY 2 DESC;
WAIT_CLASS COUNT(*)
---------------------------------------------------------------- ----------
Other 717
Idle 94
Administrative 54
Cluster 50
User I/O 45
Network 35
Concurrency 32
System I/O 30
Configuration 24
Application 17
Queueing 9
Scheduler 7
Commit 2
BEGIN
PRINT_TABLE('SELECT *
FROM V$EVENT_NAME
WHERE NAME = ''db file sequential read''');
END
;
KENZO:xsoftdb:SYSTEM >
1 BEGIN
2 PRINT_TABLE('SELECT *
3 FROM V$EVENT_NAME
4 WHERE NAME = ''db file sequential read''');
5 END
6 ;
7 /
EVENT# : 143
EVENT_ID : 2652584166
NAME : db file sequential read
PARAMETER1 : file#
PARAMETER2 : block#
PARAMETER3 : blocks
WAIT_CLASS_ID : 1740759767
WAIT_CLASS# : 8
WAIT_CLASS : User I/O
---------------------------------------------------------------------------
CREATE OR REPLACE PROCEDURE PRINT_TABLE(P_QUERY IN VARCHAR2) AUTHID CURRENT_USER IS
l_theCursor INTEGER DEFAULT DBMS_SQL.OPEN_CURSOR;
l_columnValue VARCHAR2(4000);
l_status INTEGER;
l_descTbl DBMS_SQL.DESC_TAB;
l_colCnt NUMBER;
BEGIN
DBMS_SQL.PARSE(l_theCursor, p_query, DBMS_SQL.NATIVE);
DBMS_SQL.DESCRIBE_COLUMNS(l_theCursor, l_colCnt, l_descTbl);
FOR i IN 1..l_colCnt LOOP
DBMS_SQL.DEFINE_COLUMN(l_theCursor, i, l_columnValue, 4000);
END LOOP;
l_status := DBMS_SQL.EXECUTE(l_theCursor);
WHILE(DBMS_SQL.FETCH_ROWS(l_theCursor) > 0) LOOP
FOR i IN 1..l_colCnt LOOP
DBMS_SQL.COLUMN_VALUE(l_theCursor, i, l_columnValue);
DBMS_OUTPUT.PUT_LINE(RPAD(l_descTbl(i).col_name, 30) || ': ' || l_columnValue);
END LOOP;
DBMS_OUTPUT.PUT_LINE('---------------------------------------------------------------------------');
END LOOP;
DBMS_SQL.CLOSE_CURSOR(l_theCursor);
EXCEPTION
WHEN OTHERS THEN
RAISE;
END;
/
- 강좌 URL : http://www.gurubee.net/lecture/4296
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.