l oracle : 11g realse2 버전사용중


◎ sessions, processes 현재 사용중인 수


▼ 내용

processes : 프로세스 수

sessions : 세션 수

CURRENT_UTILIZATION : 현재 접속 수

MAX_UTILIZATION : 오라클 기동 시점부터 지금까지 최대 접속 수

INITIAL_ALLOCATION : init.ora 파라메터에서 설정한 수치

SELECT * from v$resource_limit where resource_name in ('processes', 'sessions', 'transactions')



◎ sessions, processes 현재 날리는 쿼리

▼ 내용

아래 쿼리문중 2중 아무거나 날리면 현재 실행중인 세션이 날리는 쿼리를 알수있다.

SELECT a.sid, -- SID a.serial#, -- 시리얼번호 a.status, -- 상태정보 a.process, -- 프로세스정보 a.username, -- 유저 a.osuser, -- 접속자의 OS 사용자 정보 b.sql_text, -- sql c.program -- 접속 프로그램 FROM v$session a, v$sqlarea b, v$process c WHERE a.sql_hash_value=b.hash_value AND a.sql_address=b.address AND a.paddr=c.addr AND a.status='ACTIVE';
SELECT a.osuser ,a.SID ,a.serial# ,a.status ,b.sql_text FROM v$session a ,v$sqlarea b WHERE a.sql_address = b.address;

◎ session 접속 정보

▼ 내용

현재 접속중인 세션의 정보를 알수 있다.

SELECT username,program from v$session;

◎ sessions, processes 현재 설정된 max 수

 


▼ 내용

왼쪽은 맥스값 process 쿼리 ---------------------------------------------- 오른쪽은 맥스값 sessions 쿼리

show parameter processes; //프로세스 맥스값 조회 show parameter sessions; //세션수 맥스값 조회




◎ sessions , process 맥스값 변경

▼ 내용

최대 접속세션의 수는 다음과 같은 공식으로 이루어진다.

SESSIONS = (PROCESSES * 1.1) + 5

그러므로 processes 의 값만 변경하면 sessions 의 값은 자동으로 변경된다.

ALTER SYSTEM SET processes = 200 scope=spfile; //변경할 processes의 값을 넣어주면됨. //변경후 db 재시작 한다음 processes , sessions수 확인

세션,프로세스수 수정전




세션,프로세스수 수정후




SELECT s.status "Status", s.serial# "Serial#", s.TYPE "Type", s.username "DB User", s.osuser "Client User", s.server "Server", s.machine "Machine", s.module "Module", s.client_info "Client Info", s.terminal "Terminal", s.program "Program", p.program "O.S. Program", s.logon_time "Connect Time", lockwait "Lock Wait", si.physical_reads "Physical Reads", si.block_gets "Block Gets", si.consistent_gets "Consistent Gets", si.block_changes "Block Changes", si.consistent_changes "Consistent Changes", s.process "Process", p.spid, p.pid, si.sid, s.audsid, s.sql_address "Address", s.sql_hash_value "Sql Hash", s.action FROM v$session s, v$process p, sys.v_$sess_io si WHERE s.paddr = p.addr(+) AND si.sid(+) = s.sid AND (s.username IS NOT NULL) AND (NVL (s.osuser, 'x') <> 'SYSTEM') AND (s.TYPE <> 'BACKGROUND') ORDER BY 1;
SELECT s.INST_ID, s.SID, s.username, s.STATUS, TO_CHAR(s.SQL_EXEC_START,'yyyy.mm.dd-hh24:mi:ss') SQL_EXEC_START , TO_CHAR(TO_DATE(TRUNC( MOD(SYSDATE - s.SQL_EXEC_START,1)* 24 * 60 * 60), 'SSSSS'),'HH24:MI:SS') connect_tm , s.TERMINAL , q.sql_text, s.MODULE, s.LOGON_TIME FROM ( SELECT s.INST_ID, s.SID, s.USERNAME, s.STATUS, s.SCHEMANAME, s.MACHINE, s.TERMINAL, DECODE(s.SQL_ID,NULL, s.PREV_SQL_ID, s.SQL_ID) SQL_ID, DECODE(s.SQL_EXEC_START,NULL, s.PREV_EXEC_START, s.SQL_EXEC_START) SQL_EXEC_START , s.MODULE, TO_CHAR(s.LOGON_TIME,'yyyy.mm.dd-hh24:mi:ss') LOGON_TIME FROM GV$SESSION S WHERE ( (s.USERNAME IS NOT NULL) AND (NVL (s.osuser, 'x') <> 'SYSTEM') AND (s.TYPE <> 'BACKGROUND')) AND s.PROGRAM = 'w3wp.exe' ) s, (SELECT INST_ID, sql_id, sql_text, first_load_time FROM gv$sql) q WHERE s.INST_ID = q.INST_ID AND s.SQL_ID = q.sql_id AND (SYSDATE - s.SQL_EXEC_START) > (300 * (1/24/60/60)) ORDER BY connect_tm desc;


  1. FlightSim 2020.01.23 16:39 신고

    같은 IT인으로서 좋은 정보 감사합니다. 맞구독해요

  2. 나그네 2020.05.12 16:50

    정보 참고합니다 감사합니다~

  3. 나그네 2021.02.18 11:06

    정보 참고합니다^^

+ Recent posts