Support
Orange Support > 문의하기
Q & A
Re: Re: session 모니터
Date2004.10.03 /
Hit : 10385
session 모니터
<< cursor_sharing을 similar나 force로 설정한 경우 >> 원하시는 기능은 오라클에서 그러한 기능을 제공하고 있는데 불구하고 오렌지가 구현을 못하는 것이 아니라 오라클에서 그러한 기능을 제공하지 않기 때문입니다. 즉, 제 아무리 sysdba 권한으로 접속하더라도 v$ 계열의 뷰를 이용하여 다른 세션의 바인드변수의 실제값을 구하는 방법을 오라클에서 제공하고 있지 않습니다. 메타링크에 접근 가능하신분이라면 Note:1068973.6 문서를 보시면 되겠습니다. (v$sql_bind_data, v$sql_bind_metadata, v$sql_cursor, v$sql 뷰를 적절히 조인하면 가능할 것 같지만 안됩니다.) 따라서 오렌지를 포함한 어떠한 툴에서도 실제 값이 아닌 시스템이 생성한 바이드변수값을 보여줍니다. 다른 세션의 바인드 변수의 실제값을 구하는 방법은 oradebug를 이용하여 미리 모니터링 하고자 하는 세션을 trace 걸어 놓는 수 밖에 없습니다. 혹은 초기화 파라미터 파일 혹은 spfile을 이용하여 인스턴스 레벨에서 모든 sql을 trace할 수도 있습니다만 많은 양의 trace파일을 생성하므로 주의하여 사용하시기 바랍니다. 오렌지의 trace tool을 사용하면 편리하게 trace파일로 부터 바인드 변수의 실제값을 알 수 있습니다.
---------- Original Message ----------
이름 : 김종진 제목 : session 모니터 세션 모니터에서 해당세션을 선택하면 sql 이 밑에 나오잖아요.. 저희 의 경우 oracle 9i 이며 cursor_share 를 similar 로 설정했습니다. literal 변수 때문인데요... 결과 아래와 같이 sql 문이 잡혀 나옵니다. ELECT nvl(d.rack_no,:"SYS_B_00"), nvl(a.pallet_no,:"SYS_B_01"), nvl(a.srl_no,:"SYS_B_02") , nvl(a.item,:"SYS_B_03"), NVL(A.USE_CD,:"SYS_B_04"), nvl(a.ordno,:"SYS_B_05") , nvl(a.color,:"SYS_B_06"), nvl(a.grade,:"SYS_B_07"), nvl(a.yqty,:"SYS_B_08") , nvl(a.mqty,:"SYS_B_09"), nvl(a.rollwgt,:"SYS_B_10"), nvl(b.chit_no,:"SYS_B_11") , nvl(a.ipgo_ilja,:"SYS_B_12"), nvl(a.chulgo_ilja,:"SYS_B_13"), nvl(a.banpum_ilja,:"SYS_B_14") , nvl(b.type,:"SYS_B_15"), nvl(b.prod_dept,:"SYS_B_16"), nvl(b.cust,:"SYS_B_17") , nvl(b.chul_no,:"SYS_B_18"), nvl(b.dept_code,:"SYS_B_19"), nvl(b.page_no,:"SYS_B_20") , nvl(c.dept_code,:"SYS_B_21"), nvl(c.cust,:"SYS_B_22"), nvl(a.dye_grade,:"SYS_B_23") from ksba22 a, ksba25 b, ksba23 c, ksba01 d where a.pallet_no = :"SYS_B_24" and a.pallet_no = d.pallet_no and b.type like :"SYS_B_25" and a.srl_no = b.srl_no and a.ordno = c.ordno and a.color = c.color 여기 보면 sys 로 시작하는 놈들인데..이놈들이 바로 cursor_share 옵션을 similar 로 해서 그렇죠... sys로 시작되는 놈들을 정상적으로 일반 sql 세션으로 잡아 낼수는 없을까요? 보통 세션 모니터 감시중 속도가 늦는 세션을 잡아서 바로 plan tool로 가져 가거나 trace 를뜨는데요.. parsing 할때 sys 로 시작하는 부분으로 오렌지에 나와서 사용이 상당히 불편합니다. 특히 plan tool 을 사용할때요... 이거 세션에서 사용중인 일반적인 sql 로 잡아 내는 방법이 없을까요?
<< cursor_sharing을 similar나 force로 설정한 경우 >> 원하시는 기능은 오라클에서 그러한 기능을 제공하고 있는데 불구하고 오렌지가 구현을 못하는 것이 아니라 오라클에서 그러한 기능을 제공하지 않기 때문입니다. 즉, 제 아무리 sysdba 권한으로 접속하더라도 v$ 계열의 뷰를 이용하여 다른 세션의 바인드변수의 실제값을 구하는 방법을 오라클에서 제공하고 있지 않습니다. 메타링크에 접근 가능하신분이라면 Note:1068973.6 문서를 보시면 되겠습니다. (v$sql_bind_data, v$sql_bind_metadata, v$sql_cursor, v$sql 뷰를 적절히 조인하면 가능할 것 같지만 안됩니다.) 따라서 오렌지를 포함한 어떠한 툴에서도 실제 값이 아닌 시스템이 생성한 바이드변수값을 보여줍니다. 다른 세션의 바인드 변수의 실제값을 구하는 방법은 oradebug를 이용하여 미리 모니터링 하고자 하는 세션을 trace 걸어 놓는 수 밖에 없습니다. 혹은 초기화 파라미터 파일 혹은 spfile을 이용하여 인스턴스 레벨에서 모든 sql을 trace할 수도 있습니다만 많은 양의 trace파일을 생성하므로 주의하여 사용하시기 바랍니다. 오렌지의 trace tool을 사용하면 편리하게 trace파일로 부터 바인드 변수의 실제값을 알 수 있습니다.
---------- Original Message ----------
이름 : 김종진 제목 : session 모니터 세션 모니터에서 해당세션을 선택하면 sql 이 밑에 나오잖아요.. 저희 의 경우 oracle 9i 이며 cursor_share 를 similar 로 설정했습니다. literal 변수 때문인데요... 결과 아래와 같이 sql 문이 잡혀 나옵니다. ELECT nvl(d.rack_no,:"SYS_B_00"), nvl(a.pallet_no,:"SYS_B_01"), nvl(a.srl_no,:"SYS_B_02") , nvl(a.item,:"SYS_B_03"), NVL(A.USE_CD,:"SYS_B_04"), nvl(a.ordno,:"SYS_B_05") , nvl(a.color,:"SYS_B_06"), nvl(a.grade,:"SYS_B_07"), nvl(a.yqty,:"SYS_B_08") , nvl(a.mqty,:"SYS_B_09"), nvl(a.rollwgt,:"SYS_B_10"), nvl(b.chit_no,:"SYS_B_11") , nvl(a.ipgo_ilja,:"SYS_B_12"), nvl(a.chulgo_ilja,:"SYS_B_13"), nvl(a.banpum_ilja,:"SYS_B_14") , nvl(b.type,:"SYS_B_15"), nvl(b.prod_dept,:"SYS_B_16"), nvl(b.cust,:"SYS_B_17") , nvl(b.chul_no,:"SYS_B_18"), nvl(b.dept_code,:"SYS_B_19"), nvl(b.page_no,:"SYS_B_20") , nvl(c.dept_code,:"SYS_B_21"), nvl(c.cust,:"SYS_B_22"), nvl(a.dye_grade,:"SYS_B_23") from ksba22 a, ksba25 b, ksba23 c, ksba01 d where a.pallet_no = :"SYS_B_24" and a.pallet_no = d.pallet_no and b.type like :"SYS_B_25" and a.srl_no = b.srl_no and a.ordno = c.ordno and a.color = c.color 여기 보면 sys 로 시작하는 놈들인데..이놈들이 바로 cursor_share 옵션을 similar 로 해서 그렇죠... sys로 시작되는 놈들을 정상적으로 일반 sql 세션으로 잡아 낼수는 없을까요? 보통 세션 모니터 감시중 속도가 늦는 세션을 잡아서 바로 plan tool로 가져 가거나 trace 를뜨는데요.. parsing 할때 sys 로 시작하는 부분으로 오렌지에 나와서 사용이 상당히 불편합니다. 특히 plan tool 을 사용할때요... 이거 세션에서 사용중인 일반적인 sql 로 잡아 내는 방법이 없을까요?
session 모니터
bleaksea
2004.09.17
Re: session 모니터
오렌지팀
2004.09.20
Re: Re: session 모니터
bleaksea
2004.10.03