database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 26677 게시물 읽기
No. 26677
v$session, v$sqltext 에 대해서...
작성자
까먹지마(까먹지마)
작성일
2006-05-08 15:09
조회수
2,487

우선 자바 프로그램으로 오라클 서버에 접속해서 쿼리를 날렸습니다.

import java.sql.*;

public class JdbcOrcl {
public static void main(String args[]) {
String query;
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;

String jdbcDriver = "jdbc:oracle:thin:@localhost:1521:ORCL";

try{
// Oracle JDBC 드라이버 찾기
Class.forName("oracle.jdbc.driver.OracleDriver");

conn = DriverManager.getConnection(jdbcDriver, "scott", "tiger");
stmt = conn.createStatement();

query = "select * from emp where empno = '5555'";

rs = stmt.executeQuery(query);

} catch (Exception e) {
System.out.println(e);

} finally {

//stmt.close();
//conn.close();
}
}
}

 

간단하게 만들어서 실행 했더니...

v$sqltext 에는 해당 쿼리가 메모리에 올라와 있네요...

그런데... v$session 에 program 에는 프로그램 정보가 없습니다.

토드나 골든 혹은 sqlplus 로 접속했을 경우에는 프로그램 정보가 남던데요... 왜 그런가요 ?

 

또 한가지, 지난 번 질문에 대한 답글을 보구 질문 하는데요...

 

클라이언트에서 날린 쿼리가 오라클 서버의 메모리 영역에 올라가잖아요...

메모리 덤프를 해서 직접 확인할 수 있다고 하는데, 메모리 덤프를 어떻게 하는지요 ?

현재 Windows XP Professional, Oracle 9i로 설치 운영하고 있습니다.

 

답글 꼭 부탁 드릴께요 ^^

이 글에 대한 댓글이 총 3건 있습니다.

v$sqltext 에는 해당 쿼리가 메모리에 올라와 있네요...

    ==> SQL공유영역에서는 해당쿼리 관련 Connection 의 종료와 관계없이 일정시간 (또는 계속..) 하드파싱을 거친 정보가 유지되기 때문에 확인이 됩니다.

 

그런데... v$session 에 program 에는 프로그램 정보가 없습니다.

 

   ==> v$session 은 위와 달리 해당쿼리 관련 Connection 의 종료시 즉시 session 정보가 제거 됩니다..(당연한 이야기인듯^^;)

 

토드나 골든 혹은 sqlplus 로 접속했을 경우에는 프로그램 정보가 남던데요... 왜 그런가요 ?

 

  ==> 토드나 골든 혹은 sqlplus 로 접속했을 경우에는 로그아웃하기 전까지 Connection 을 열어둔채로 사용하니깐.. 당연히 보입니다. Java 단에서는 프로그램이 시작해서 종료하는 매우 짧은 시간 내에서만 확인이 되겠지요.. Connection 객제 close 이전에 디버깅 툴을 이용해서 breakpoint 를 설정하시거나.. Thread.sleep(60000); 과 같은 코드를 삽입하셔서 자원이 해제 되기 전에 확인하시면 보입니다.

 

김용식님이 2006-05-08 17:47에 작성한 댓글입니다. Edit

그렇군요...

답글 감사해요 ^^

 

그런데... 자바 구문에서

finally { } 보시면, smtp.close(); conn.close(); 문장이 있긴 하지만...

보이는 데로, 주석으로 처리 되어 있거든요...

 

그렇다면 이론적으로 자바 프로그램 내에서 connection을 끊지 않았을 것 같은데요...

 

잘 못 생각한 걸까요 ?

까먹지마(까먹지마)님이 2006-05-08 18:03에 작성한 댓글입니다.

... 답변드리기 조금 난감하군요^^;;..

 

Toad 에서 New Connection 메뉴로 여러개의 Connection 을 열수 있습니다 .또한 End Connection 을 이용하여 Connection 을 종료할 수 있지요..

 

님이 말씀하신것은..

마치 Toad 에서 End Connection 을 하지 않은채로 토드를 그냥 끄면 Connection 은 이론적으로 살아 있지 않는가와.. 동일한 질문이며,, 이것으로 답이 될수 있지 않을까 기대합니다..

김용식님이 2006-05-08 18:16에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
26680오라클과 MS-SQL서버를 한쿼리로 볼 수 있을까요? [2]
아폴론
2006-05-08
1805
26679archive관련된 파일인지요 [2]
유경희
2006-05-08
1486
26678연속적이지 않은 날짜데이터의 바로 직전 일자 데이타와의 연산 문제 [1]
이진웅
2006-05-08
2373
26677v$session, v$sqltext 에 대해서... [3]
까먹지마
2006-05-08
2487
26676프로시져에서 데이터가 있으면 테이블조인을 하고 그렇지 않는경우 조인을 하지 않는 방법이 있습니까? [1]
조기영
2006-05-08
1398
26675chained rows 가 뭘 의미 하는 건지요 ? [1]
까먹지마
2006-05-08
3113
26674Package를 권한 설정할 때... [2]
초보
2006-05-08
4694
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.024초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다