내맘대로긍정이 알려주는
Oracle 23ai 신기능
무료 세미나 발표자료
OS환경 : Oracle Linux 8.1 (64bit)
DB 환경 : Oracle Database 19.3.0.0
방법 : 오라클 19c VS Code에서 실시간 SQL 모니터링
Oracle Developer Tools for VS Code (SQL and PLSQL)는 VS Code(Visual Studio Code)에서
SQL, PL/SQL 을 편집하고 실행할 수 있는 Oracle의 무료 Extension임
이 Extension 버전 VS Code 21.7.1부터 실시간 SQL 모니터링 기능을 사용할수 있게됨
일반적으로 개발을 하지 않는 운영 DBA는 VS Code 프로그램을 접할 기회가 잘 없음
모니터링 툴이 없거나 종종 파이썬을 사용하거나 개발 업무도 하는 DBA의 경우 이 익스텐션을 유용하게 사용할수 있을듯 함
본문에서는 이 익스텐션을 어떻게 사용하는지, 어떤 기능이 존재하는지에 대해 설명함
참고로 실시간 SQL 모니터링 기능 사용을 위해선 Tuning Pack 라이센스가 필요함
주요 기능
- 다양한 연결 방법 지원
Host, Port, Service Name을 이용한 연결, TNSNAMES.ORA 파일을 이용한 연결, Easy Connect, ODP.NET 연결, LDAP 연결등을 지원함
- ADB(Oracle Autonomous Database) 생성 및 관리
Cloud DB 환경의 경우 ADB를 생성하고 관리할 수 있음
- DB 탐색기
테이블, 인덱스, 트리거 등 DB에 존재하는 객체들을 윈도우 파일 탐색기처럼 탐색할 수 있음
- PL/SQL 디버거
Visual Studio Code의 기본 디버깅 기능을 사용해서 PL/SQL(프로시저, 함수, 패키지)을 디버그 할수 있음
- 편리한 쿼리 작성
쿼리 작성시 IntelliSense 기능을 이용해 자동완성 기능을 사용할 수 있음
- 실행계획 확인
쿼리의 실행계획을 텍스트 또는 그리드 형식으로 확인가능함
- 실시간 SQL 모니터링
리소스를 많이 사용하는 쿼리, 장기실행 쿼리나 병렬 쿼리에 대해 실시간 SQL 모니터링이 가능함
해당 쿼리의 플랜, 힌트, 리소스 사용량등을 확인 가능함(보고서를 생성하여 보여줌)
사용방법
VS Code 다운로드 및 실행
참고 : Windows 10에 Visual Studio Code 설치 가이드( https://positivemh.tistory.com/1058 )
왼쪽 Extension 버튼 선택
Oracle Developer 검색 후 Oracle Developer Tools for VS Code (SQL and PLSQL) 선택
Install 선택
Extension 설치 후에 왼쪽 바에 데이터베이스 모양 아이콘이 생김, 여기서 + 버튼 선택
커넥션 정보를 입력할 수 있음
위에서 설명한것처럼 다양한 방법의 연결방식을 지원함
DB 접속 정보 입력 후 Test Connection 선택 또는 Create Connection 선택
연결이 완료된 상태로 여기서 테이블 및 DB 오브젝트들 확인이 가능함
테스트를 위해 동일한 방식으로 일반유저(IMSI) 접속 후
우클릭 - Open New SQL File 선택
SQL 입력 후 우클릭하면 SQL 실행 가능(메뉴중 실행계획 확인 기능 및 SQL 모니터 기능도 존재함)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
drop table emp2 purge;
drop table emp3 purge;
drop table emp4 purge;
create table emp2 as select * from emp, dual connect by level <= 5;
create index emp2_ix01 on emp2(empno, ename);
create table emp3 as select * from emp, dual connect by level <= 2;
create index emp3_ix01 on emp3(empno, ename);
create table emp4 as select * from emp, dual connect by level <= 2;
create index emp4_ix01 on emp4(empno, ename);
select /*+ leading(e2 e1 e3 e4) use_nl(e1) */
e1.mgr, e2.empno, e3.ename, e4.deptno, sum(e2.sal + e3.sal + e4.sal) as total_sal
from emp e1, emp2 e2, emp3 e3, emp4 e4
where e1.empno = e2.empno
and e2.empno = e3.empno
and e3.empno = e4.empno
group by e1.mgr, e2.empno, e3.ename, e4.deptno;
|
쿼리 실행
실행이 완료되고 결과창이 출력됨
일반 유저로 쿼리 실행중일때 SYSTEM 유저로 Real-Time SQL Monitoring 기능 실행
장기 실행중인 쿼리를 확인가능함, 여기서 SQL ID 선택
SQL Monitor 보고서를 볼수 있음
하단 탭부분에서 실행계획을 텍스트가 아닌 그래픽으로도 볼수 있고,
이외에 다양한 정보들을 확인가능함(SQL Text, 리소스 사용량, 옵티마이저 파라미터, Outlint Hint 등)
다만 쿼리 편집기 창에서 우클릭 - Monitor SQL 기능을 사용하면
Monitor 힌트가 추가되면서 SQL이 실행되는데
모니터된 SQL을 보면 추가된 Monitor 힌트로 인해 기존 힌트가 무시됨
이부분은 참고해서 모니터링을 진행하면 될듯함
참조 : https://marketplace.visualstudio.com/items?itemName=Oracle.oracledevtools
https://medium.com/oracledevs/real-time-sql-monitoring-with-visual-studio-code-9cc2178b0e75
https://www.youtube.com/watch?app=desktop&v=uj9SV6XRVxQ
https://docs.oracle.com/en/database/oracle/oracle-database/21/tgsql/monitoring-database-operations.html#GUID-C941CE9D-97E1-42F8-91ED-4949B2B710BF
https://positivemh.tistory.com/880
https://positivemh.tistory.com/1062
'ORACLE > Admin' 카테고리의 다른 글
ORA-01516: nonexistent log file, data file, or temporary file "temp01.dbf" in the current container (0) | 2024.03.06 |
---|---|
오라클 Edelivery 소프트웨어 다운로드 사이트 사용 가이드 (0) | 2024.03.02 |
오라클 19c 인덱스 생성시 nosort 옵션(mssm 환경) (0) | 2024.02.02 |
오라클 19c 인덱스 생성시 nosort 옵션(assm 환경) (0) | 2024.02.02 |
오라클 19c AWR 비교 리포트 수집 방법 (0) | 2024.01.30 |