Oracle DB에서 실행중인 프로세스를 어떻게 표시합니까?
Oracle 데이터베이스에서 진행중인 다른 프로세스를 표시 할 수 있습니까? Sybase와 같은 것sp_who
V $ SESSION에서 몇 개의 열을 가져오고 V $ SQL에서 SQL 문을 가져오고 싶을 것입니다. Oracle 자체가 실행중인 백그라운드 프로세스를 제외하려고한다고 가정합니다.
SELECT sess.process, sess.status, sess.username, sess.schemaname, sql.sql_text
FROM v$session sess,
v$sql sql
WHERE sql.sql_id(+) = sess.sql_id
AND sess.type = 'USER'
외부 조인은 현재 활성화되지 않은 세션을 처리하는 것입니다. V $ SQL에서 sql_fulltext 열을 가져올 수도 있습니다. V $ SQL은 처음 1000자가 아닌 전체 SQL 문을 포함하지만 CLOB이므로 처리하기가 좀 더 복잡 할 수 있습니다.
현실적으로, SP_WHO가 제공하는 것보다 더 많은 정보를 얻을 수 있기 때문에 V $ SESSION에서 사용할 수있는 모든 것을보고 싶을 것입니다.
sp_who를 살펴본 후에 Oracle은 그 자체로 그러한 능력을 가지고 있지 않습니다. Oracle에는 db를 실행하는 최소 8 개의 프로세스가 실행되고 있습니다. RMON 등
테이블 쿼리처럼 실행중인 쿼리를 DB에 요청할 수 있습니다. V $ 테이블을보십시오.
빠른 예 :
SELECT sid,
opname,
sofar,
totalwork,
units,
elapsed_seconds,
time_remaining
FROM v$session_longops
WHERE sofar != totalwork;
이것은 현재 "ACTIVE"인 SQL을 보여줍니다.
select S.USERNAME, s.sid, s.osuser, t.sql_id, sql_text
from v$sqltext_with_newlines t,V$SESSION s
where t.address =s.sql_address
and t.hash_value = s.sql_hash_value
and s.status = 'ACTIVE'
and s.username <> 'SYSTEM'
order by s.sid,t.piece
/
이것은 자물쇠를 보여줍니다. 때때로 상황이 느리게 진행되지만 잠금을 기다리는 것이 차단되기 때문입니다.
select
object_name,
object_type,
session_id,
type, -- Type or system/user lock
lmode, -- lock mode in which session holds lock
request,
block,
ctime -- Time since current mode was granted
from
v$locked_object, all_objects, v$lock
where
v$locked_object.object_id = all_objects.object_id AND
v$lock.id1 = all_objects.object_id AND
v$lock.sid = v$locked_object.session_id
order by
session_id, ctime desc, object_name
/
이것은 긴 작업 (예 : 전체 테이블 스캔)을 찾는 데 적합합니다. 짧은 작업이 많기 때문에 아무 것도 표시되지 않습니다.
COLUMN percent FORMAT 999.99
SELECT sid, to_char(start_time,'hh24:mi:ss') stime,
message,( sofar/totalwork)* 100 percent
FROM v$session_longops
WHERE sofar/totalwork < 1
/
현재 세션을 지원하지 않을 수있는 프로세스가 데이터베이스에 있음을 기억하십시오.
모든 프로세스에 관심이 있다면 v $ process (또는 RAC의 gv $ process)를 살펴보고 싶을 것입니다.
참고URL : https://stackoverflow.com/questions/199508/how-do-i-show-running-processes-in-oracle-db
'programing tip' 카테고리의 다른 글
애니메이터와 애니메이션의 차이점은 무엇입니까? (0) | 2020.12.05 |
---|---|
conda environment.yml과 pip requirements.txt 결합 (0) | 2020.12.05 |
이진 검색 트리에서 높이를 계산하는 가장 좋은 방법은 무엇입니까? (0) | 2020.12.05 |
단위 테스트 파일 I / O (0) | 2020.12.05 |
git을 사용하여 작업 트리를 인덱스 상태로 재설정하는 방법은 무엇입니까? (0) | 2020.12.05 |