본문 바로가기

plan

오라클 Real-Time SQL Monitoring (실시간 Plan, Trace 툴) 19c 기능개선 부분 예전에 실시간으로 SQL Plan(실행계획)을 확인할 수 있는 Real-Time SQL Monitoring 기능에 대해서 포스팅한 적이 있습니다. 이 기능을 사용하기 위해서는 여러가지 권한이 필요했었는데, Oracle 19c DBMS 부터는 별도의 권한이 없이도 자기 세션에 대해서는 이 기능을 사용할 수 있습니다. SQL> set long 1000000 set longchunksize 1000000 set linesize 1000 select DBMS_SQLTUNE.report_sql_monitor(type=>'TEXT' , report_level => 'ALL') from dual; report_sql_monitor() 함수를 호출할때, sql_id 값을 지정하지 않았습니다. 이것은 현재 실행중인(다른.. 더보기
오라클 SQLPlus 화면에 결과를 뿌리지 않고 수행시간, Plan 만 확인 (set autotrace explain statistics) Oracle SQL*Plus 상에서 SQL을 실행할때 실행결과는 화면에 뿌리지 않고 최종수행시간만 알고싶은 경우가 있습니다. 이때, 쉽게 사용할 수 있는 방법이 autotrace 기능입니다. 원래 autotrace 기능은 자동으로 SQL 실행정보(실행계획, 실행통계)를 출력해주는 기능인데, 이것과 함께 set timing on 을 함께 사용하면 됩니다. 위에서 set timing on 명령어를 써줬기 때문에 최종수행시간(Elapsed Time) 이 나옵니다. 하지만, set autotrace trace stat 명령어를 줬기 때문에 실행결과는 나오지 않습니다. 실제 EMP 테이블을 조회하기는 하지만, 조회결과는 화면에 출력하지 않고, 최종 조회된 건수인 "14 rows selected." 정보만 화면에 .. 더보기
Realtime SQL Monitoring 으로 Plan 그래픽컬하게 보기 앞에서 Realtime SQL Monitoring 기능을 이용하는 방법에 대해서 설명했습니다. 참고) 오라클 Plan, Trace 쉽게 보는 - Realtime SQL Monitoring 이 Realtime SQL 모니터링 기능은 원래 Oracle EM(Enterprise Manager)툴의 일부 기능이기 때문에, html 형식으로 그래픽하게 나오는 것이 기본 동작입니다. SQL> set long 1000000 set longchunksize 1000000 set linesize 1000 set pagesize 0 select DBMS_SQLTUNE.report_sql_monitor(sql_id => '&sql_id', type=>'ACTIVE' , report_level => 'ALL') from du.. 더보기
ORA-00942, ORA-06512 오라클 에러 SYS.DBMS_SQLTUNE Oracle Realtime SQL Monitor 기능을 sys 유저가 아닌 일반 유저에서 사용하고자 하는 경우, 권한 부족으로 다음과 같이 에러가 발생합니다. report_sql_monitor() 함수에서 사용하는 딕셔너리뷰를 조회할 수 없기 때문에 ORA-00942 에러가 발생하고, DBMS_SQLTUNE() 함수 실행권한이 없어 ORA-06512 에러가 발생합니다. sys 나 system 유저의 경우 권한이 있기 때문에 에러없이 정상적으로 실행됩니다. 다음과 같이 권한을 부여하면, 일반 유저에서도 Realtime SQL Monitor 기능을 이용할 수 있습니다. /* sys 유저에서 실행 */ SQL> grant ADVISOR, ADMINISTER SQL TUNING SET, SELECT ANY D.. 더보기
오라클 Plan, Trace 쉽게 보는 - Realtime SQL Monitoring Oracle DBMS 11g 부터 사용할 수 있는 아주 유용한 기능중에 하나가 Realtime SQL Monitoring 이라는 기능입니다. 이 기능은 EM (Enterprise Manager) 이라는 Oracle 유료 툴의 일부 기능입니다. 따라서 정식으로 사용하기 위해서는 EM Tuning Pack 라이센스가 필요합니다. 하지만, 따로 제한이 걸려있거나 하지 않습니다. 개인적으로, 또는 연습목적으로 사용하는 데는 아무런 제약이 없습니다. Realtime SQL Monitoring 을 사용하는 구문은 아래와 같습니다. SQL> set long 1000000 set longchunksize 1000000 set linesize 1000 select DBMS_SQLTUNE.report_sql_monitor.. 더보기