안녕하세요.
밑에 글 에 대한 추가 질문 입니다.
그렇다면 SYSSQLTRACE의 사용 방법을 알고 싶습니다.
자세하게 설명해 주시면 감사하겠습니다.
1. SQLTRACE 기능 활성화
인포믹스에서는 기본적으로 SQL문 수집하는 기능이 비활성화 되어 있습니다. SYSADMIN DB에 접속한 후 프로시저를 수행하면 기능이 활성화됩니다.
아래는 인포믹스에서 수행되는 최근 SQL문 정보를 최대 1000개 까지 수집하도록 설정하는 예입니다.
예)
$ cat trace_on.sh
dbaccess sysadmin -<<END
execute function task("set sql tracing on", 1000, "1k","low","user"); (최대 1000개까지의 SQL문 수집, 수집 레벨 LOW, 사용자 모드)
execute function task("set sql tracing database add", "stores_demo"); (stores_demo 데이터베이스에 접속한 세션 정보만 수집합니다.)
execute function task("set sql tracing user add", "informix"); (informix 유저 세션 정보만 수집합니다.)
END
활성화한 이후 시점부터 SQL문이 수집됩니다.
2. SQL문 확인
sysmaster 데이터베이스의 syssqltrace 테이블에서 수집한 SQL문을 확인할 수 있습니다.
$ dbaccess sysmaster –
> select sql_stmtname, sql_statement from sysmaster:syssqltrace;
sql_stmtname SELECT
sql_statement select * from customer
sql_statement select tabname from informix . systables where tabid >= 100 ord
er by tabname
sql_stmtname DATABASE
sql_statement Database 'stores_demo'
3. SQLTRACE 기능 비활성화
SQL 수집을 중지하려면 다음과 같이 프로시저를 실행합니다.
$ cat trace_off.sh
execute function task("set sql tracing database remove", "stores_demo"); (SQL문 수집 대상 중 stores_demo 데이터베이스 제거)
execute function task("set sql tracing user remove", "informix"); (SQL문 수집 대상 중 informix 유저 제거)
execute function task("set sql tracing off"); (SQL문 수집 중단)
상기 기능은 인포믹스 11버전이상부터 사용할 수 있습니다.