2014년 10월 17일 금요일

SUNDB Monitoring 모니터링 쿼리





----------------------------------------------------------
-- SESSION ENVIRONMENT UNUSED의 개수를 출력합니다.
-- MAX : CLIENT_MAX_COUNT
----------------------------------------------------------
SELECT COUNT(*) FROM X$KN_PROC_ENV  WHERE STATE = 'UNUSED';       


----------------------------------------------------------
-- 현재 접속된 SESSION의 개수를 출력합니다.
-- MAX : CLIENT_MAX_COUNT
----------------------------------------------------------
SELECT COUNT(*) FROM X$SESSION;


----------------------------------------------------------
-- 현재 접속된 PROCESS의 개수를 출력합니다.
-- MAX : PROCESS_MAX_COUNT
----------------------------------------------------------
SELECT COUNT(*) FROM X$PROCESS_INFO;


----------------------------------------------------------
-- active transaction의 개수를 출력합니다.
-- MAX : TRANSACTION_TABLE_SIZE
----------------------------------------------------------
SELECT COUNT(*) FROM X$TRANSACTION;

----------------------------------------------------------                 
-- 리두 로그 버퍼 관련된 정보들을 출력합니다.
-- BLOCKED_LOGGING_COUNT 은 값이 적을 수록 유리합니다.
-- MAX : 100 이상
----------------------------------------------------------   
SELECT BLOCKED_LOGGING_COUNT FROM X$LOG_STREAM;


----------------------------------------------------------                 
-- 리두 로그 파일에 관련된 정보들을 출력합니다.
-- MAX : LOG_GROUP_COUNT
----------------------------------------------------------   
SELECT COUNT(*) FROM X$LOG_GROUP WHERE STATE != 'UNUSED';


------------------------------------------------------------------------     
-- 가비지 컬렉터 관련된 정보들을 출력합니다.
-- MAX : SYSTEM_MEMORY_UNDO_TABLESPACE_SIZE에 따라 변동
-- SYSTEM_SCN - AGABLE_SCN 의 값이 AGER가 처리해야 될 SCN 개수입니다.
------------------------------------------------------------------------
SELECT NAME, VALUE FROM X$SM_SYSTEM_INFO WHERE NAME = 'AGABLE_SCN';
SELECT NAME, VALUE FROM X$SM_SYSTEM_INFO WHERE NAME = 'AGABLE_VIEW_SCN';


------------------------------------------------------------------------     
-- 락 관련된 정보들을 출력합니다.
-- SYSTEM_SCN - AGABLE_SCN 의 값이 AGER가 처리해야 될 SCN 개수입니다.
------------------------------------------------------------------------
SELECT XS.PROCESS "PID", XSE.ID "SESSION_ID", XLW.GRANTED_TRANSACTION_SLOT_ID "GRANTED_TX_ID" ,
                                XLW.REQUEST_TRANSACTION_SLOT_ID "REQUEST_TX_ID", XTT.BEGIN_TIME "BEGIN_TIME"
           FROM X$LOCK_WAIT XLW, X$TRANSACTION XTT, X$SM_SESS_ENV XSE, X$SESSION XS
WHERE XLW.GRANTED_TRANSACTION_SLOT_ID = XTT.SLOT_ID AND XTT.ID = XSE.VALUE AND XSE.ID = XS.ID;


------------------------------------------------------------------------     
-- 테이블 스페이스의 FREE 용량을 출력합니다.
-- 덤프 테이블이므로빈번한 쿼리 수행 금지
------------------------------------------------------------------------
SELECT COUNT(1)*64/1024 "DICTIONARY_TBS FREE_SIZE(MB)" FROM D$TABLESPACE_EXTENT( 'DICTIONARY_TBS' ) WHERE STATE = 'F';
SELECT COUNT(1)*64/1024 "MEM_UNDO_TBS FREE_SIZE(MB)" FROM D$TABLESPACE_EXTENT( 'MEM_UNDO_TBS' ) WHERE STATE = 'F';
SELECT COUNT(1)*64*4/1024 "MEM_DATA_TBS FREE_SIZE(MB)" FROM D$TABLESPACE_EXTENT( 'MEM_DATA_TBS' ) WHERE STATE = 'F';
SELECT COUNT(1)*64*4/1024 "MEM_TEMP_TBS FREE_SIZE(MB)" FROM D$TABLESPACE_EXTENT( 'MEM_TEMP_TBS' ) WHERE STATE = 'F';






-- 데이터베이스의 이름, 캐릭터 셋, 타임 존, 주석 정보를 출력합니다.
SELECT CATALOG_NAME, CHARACTER_SET_NAME, TIME_ZONE_INTERVAL, COMMENT FROM CATALOG_NAME;

-- 테이블의 이름, 생성 날짜, 수정날짜, 주석 정보를 출력합니다.
SELECT TABLE_ID, TABLE_NAME, CREATED_TIME, MODIFIED_TIME, COMMENT FROM TABLES WHERE OWNER_ID = 4;

-- 시퀀스에 대한 정보들을 출력합니다.
SELECT SEQUENCE_ID, SEQUENCE_NAME, START_VALUE, MINIMUM_VALUE, MAXIMUM_VALUE, INCREMENT, CYCLE_OPTION, CACHE_SIZE FROM SEQUENCES WHERE OWNER_ID = 4;

-- 테이블의 제약 조건에 대한 정보들을 출력합니다.
SELECT CONSTRAINT_ID, TABLE_ID, CONSTRAINT_NAME, CONSTRAINT_TYPE, INVALID, CREATED_TIME, MODIFIED_TIME, COMMENT FROM TABLE_CONSTRAINTS WHERE TABLE_OWNER_ID = 4;

-- 테이블스페이스의 정보들을 출력합니다.
SELECT TABLESPACE_ID, TABLESPACE_NAME, USAGE_TYPE, CREATED_TIME, MODIFIED_TIME, COMMENT FROM TABLESPACES;

-- 테이블스페이스의 물리적인 파일들의 정보들을 출력합니다.
SELECT TABLESPACE_ID, PATH, STATE, DATAFILE_ID, SIZE, SHM_SEGMENT_ID FROM X$DATAFILE;

-- active transaction의 개수를 출력합니다.
SELECT COUNT(*) FROM X$TRANSACTION;

-- 현재 접속된 SESSION의 개수를 출력합니다.
SELECT COUNT(*) FROM X$SESSION;

-- 현재 접속된 PROCESS의 개수를 출력합니다.
SELECT COUNT(*) FROM X$PROCESS_INFO;

-- 현재 LOCK WAIT가 발생한 정보들을 출력합니다.
SELECT * FROM X$LOCK_WAIT;

-- X$LOCK_WAIT --> X$TRANSACTION --> X$SM_SESS_ENV --> X$SESSION
gSQL> select * from X$LOCK_WAIT;
GRANTED_TRANSACTION_SLOT_ID REQUEST_TRANSACTION_SLOT_ID
--------------------------- ---------------------------
                          9                          10

1 row selected.

gSQL> select * from x$transaction;
          ID SLOT_ID STATE  ISOLATION_LEVEL VIEW_SCN COMMIT_SCN TCN BEGIN_TIME               
------------ ------- ------ --------------- -------- ---------- --- --------------------------
      -65528       8 ACTIVE READ COMMITTED        20         -1   0 2012-12-12 15:14:57.184106
631360716809       9 ACTIVE READ COMMITTED        24         -1   1 2012-12-12 21:15:21.559566
700080062474      10 ACTIVE READ COMMITTED        24         -1   1 2012-12-12 21:15:27.395784

3 rows selected.

gSQL> select * from x$sm_sess_env where value=631360716809;
NAME     ID        VALUE
-------- -- ------------
TRANS_ID  9 631360716809

1 row selected.

gSQL> select * from x$sm_sess_env where value=700080062474;
NAME     ID        VALUE
-------- -- ------------
TRANS_ID 10 700080062474

1 row selected.

gSQL> select * from x$session;
ID SERIAL TOP_LAYER USER_ID STATUS   WATCH SERVER    PROCESS
-- ------ --------- ------- -------- ----- --------- -------
1      1         8       0 ACTIVE   LEAVE DEDICATED   25589
2      1         8       0 ACTIVE   LEAVE DEDICATED   25589
3      1         8       0 ACTIVE   LEAVE DEDICATED   25589
4      1         8       0 ACTIVE   LEAVE DEDICATED   25589
5      1         8       0 ACTIVE   LEAVE DEDICATED   25589
6      1         8       0 ACTIVE   LEAVE DEDICATED   25589
7      1         8       0 ACTIVE   LEAVE DEDICATED   25589
8      7         9       4 ACTIVE   ENTER DEDICATED   25676
9      3         9       4 INACTIVE LEAVE DEDICATED   27648
10      3         9       4 ACTIVE   ENTER DEDICATED   27653

10 rows selected.

gSQL> alter system disconnect session 9, 3;
System altered.

gSQL> select * from x$lock_wait;
no rows selected.

-- 리두 로그 관련된 정보들을 출력합니다.
FLUSH_COUNT는 플러시된 횟수이며 WAIT_COUNT_BY_BUFFER_FULL, BLOCKED_LOGGING_COUNT 은 값이 적을 수록 유리합니다.
SELECT FILE_SEQ_NO, FLUSH_COUNT, WAIT_COUNT_BY_BUFFER_FULL, BLOCKED_LOGGING_COUNT FROM X$LOG_STREAM;

-- 데이터베이스의 스토리지 매니저 부분 정보들을 출력합니다.
-- SYSTEM_SCN - AGABLE_SCN 의 값이 AGER가 처리해야 될 SCN 개수입니다.
SELECT NAME, VALUE, COMMENT FROM X$SM_SYSTEM_INFO ;

-- 데이터베이스의 쿼리 관련된 정보들을 출력합니다.
-- CALL_EXECUTE의 개수가 PVO의 개수와 동일하면 DYNAMIC QUERY입니다.
SELECT NAME, VALUE, COMMENT FROM X$SM_SYSTEM_INFO ;

-- 데이터베이스에서 접속되어 있는 세션들의 실행된 전체 구문들의 횟수 정보들을 출력합니다.
SELECT STMT_TYPE, EXECUTE_COUNT FROM X$SQL_SYSTEM_STAT_EXEC_STMT ;