2013. 11. 27. 09:53

[Oracle] SID, SPID 를 통해 수행하고 있는 쿼리 찾기

가끔 모니터링을 하다보면 OS의 cpu 혹은 memory를 많이 잡아먹는 Oracle session들이 발견된다.

그 넘들이 어떤 쿼리를 날리고 있는지 확인할 수 있다.

 

 

## oracle sid를 이용한 sql문 찾기


select a.username,a.program,a.machine,a.module,b.spid,a.sid,a.serial#,a.status,
       c.sql_text
  from v$session a,
       v$process b,
       v$sql     c
 where a.sid = '&sid'
   and b.addr = a.paddr
   and a.sql_hash_value = c.hash_value(+)
   and a.sql_address    = c.address(+);

 

 

## os pid를 이용한 sql문 찾기

 
 select /*+ use_hash(a,b,c) */
       a.username,a.program,a.machine,a.module,b.spid,a.sid,a.serial#,a.sql_hash_value,
       d.PHYSICAL_READS, d.BLOCK_GETS,
       c.sql_text
  from v$session a,
       v$process b,
       v$sql     c,
       v$sess_io d
 where b.spid = '&pid'
   and b.addr = a.paddr
   and a.sid  = d.sid
   and a.sql_hash_value = c.hash_value(+)
   and a.sql_address    = c.address(+);

 

 

Trackback 0 Comment 0
2013. 1. 25. 15:08

[Oracle] SID와 Service Name의 차이

일반적인 테스트 환경이나 소규모의 경우 한개의 DB서버에 한개의 인스턴스만 사용한다.

이런 환경에서는 SID와 Service Name을 구분할 필요가 없었던것이다.

단순히 구분짓자면 이렇게 말할수 있다.

 

SID = DB 하나의 인스턴스

 

Service Name = 여러개의 인스턴스를 모아 하나의 서버 혹은 시스템을 구성한것

 

쉽게 예를 들어보자.

서버 한대에 인스턴스를 여러개 생성하여 orcl1, orcl2 로 각각 생성했다고 하자.

각각의 인스턴스는 orcl1, orcl2 라는 SID를 갖게 된다.

해당 서버에서 두개의 인스턴스를 묶어 사용할경우, orcl 이라는 Service Name을 갖을수 있다.

이외에도 서버 두대에 설치하여 각각 미러링 처리하여 동일한 서버인것 처럼 활용할경우

각각의 서버는 서로다른 SID를 갖게 되지만 Service Name을 동일하게 하여 같은 서버 처럼 활용할수 있다.

 

 

1. 오라클 데이타베이스명 확인하는 방법

SELECT NAME, DB_UNIQUE_NAME FROM v$database;

 

2. 오라클 SID 확인하는 방법

SELECT INSTANCE FROM v$thread;

 

 

Trackback 0 Comment 0
2008. 10. 8. 17:16

[Oracle] sid 확인


select name from v$database;

'Database / Sql' 카테고리의 다른 글

[Oracle] 통계 함수  (0) 2008.10.21
[Oracle] 오라클 관련 함수들과 정보들  (0) 2008.10.21
[Oracle] 함수 모음  (0) 2008.10.21
SQL의 종류  (0) 2008.10.08
[Oracle] sid 확인  (0) 2008.10.08
[Oracle] 오라클이란?  (0) 2008.10.08
Trackback 0 Comment 0