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 24850 게시물 읽기
No. 24850
하드파싱 쿼리 잡는 방법없을까요?
작성자
파싱
작성일
2005-11-15 09:51:22
조회수
3,815

해당 시스템에 생각보다 하드파싱이 어느정도 일어 나고 있는 것 같습니다

거의 대부분 binding 변수를 사용하도록 코딩이 되어 있지만

워낙 다양한 채널을 통해 DB접근이 이루어 지는 지라..

새는 부분을 잡고 싶습니다

Instance level Trace를 걸기엔 부담 스럽고

서버에 부하를 주지않고 하드파싱 쿼리나 해당정보를 추출할 수 있는

좋은 의견들 있으시면 부탁드립니다..

 

그럼 행복하시고 좋은하루 되세요~ ^^*

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

자답해 봅니다..

일단 동적뷰중에 v$sql과 v$sqltext가 있습니다

v$sql에는 executions라는 칼럼이 있구요..

하드파싱이 이루어 지는 Dynamic Sql의 경우 binding되는 부분만빼고

쿼리가 같음에도 불구하고 모두 다른 쿼리로 인식하게 됩니다

따라서 v$sql.executions = 1 인것들을 v$sql.sql_text로

정렬하여 조회해보면 다는 아니지만 하드파싱되는 Dynamic sql들을

골라 낼 수 있는 환경이 조성됩니다

(다가 아니라는 말은 binding 변수를 사용하는 1번 실행된

 static sql도 나온다는  뜻과 v$sql이 메모리에 남아 있는 쿼리만

조회하기 때문에 메모리에  없는 쿼리는 잡을수 없다는 말입니다) 

하지만 v$sql.sql_text칼럼은 쿼리의 모든부분이 나와 있지 않아서

전체 쿼리를 보실려면 v$sql_text와 조인하셔서 보셔야 됩니다

번거롭지만 수작업이 수반되네요..ㅠㅠ

 

툴을 사용하면 조금더 수월해 집니다

Orange라는 툴에서 tools 메뉴에 SQL Monitor라는 것이 있습니다

여기서 execution = 1로하고 조회시면 목록이 나오고

의심되는 쿼리를 더블크릭하면 바로 전체쿼리 볼 수 있습니다

 

더 좋은 방법이 있으시면 고견을 부탁드립니다..^^*

파싱님이 2005-11-16 10:45:35에 작성한 댓글입니다.
이 댓글은 2005-11-16 10:57:19에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
24853[급질문]테이블스페이스 드랍시키기. [1]
알고리즘
2005-11-15
1305
24852초보인데 이런 문제는 어떻게 풀어요? [5]
권정기
2005-11-15
1249
24851Long Type 컬럼의 내용을 다른 Long Type 컬럼으로 UPDATE
오라클
2005-11-15
1685
24850하드파싱 쿼리 잡는 방법없을까요? [1]
파싱
2005-11-15
3815
24849오라클과 XML
김은섭
2005-11-15
1228
24848특정기간 동안의 년월을 구하고 싶습니다. [8]
김인수
2005-11-14
4925
24847ORACLE에도 프로필러가 있는지요??? [1]
김정호
2005-11-14
1839
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2018 DSN, All rights reserved.
작업시간: 0.066초, 이곳 서비스는
	PostgreSQL v10.4로 자료를 관리합니다