oracle 調査用コマンド
DBサーバ接続中のセッションの特定
>SELECT SID , SERIAL# , USERNAME , OSUSER , MACHINE , PROGRAM FROM V$SESSION order by USERNAME ; SID SERIAL# USERNAME OSUSER MACHINE PROGRAM ----- ------- -------- ------ ------- -------- 139 1 SYS hoge\hoge hoge\A1 sqlplus.exe |
使用中のプロセスを表示
>SELECT PID , USERNAME , SERIAL# , PGA_USED_MEM , PGA_ALLOC_MEM , PGA_FREEABLE_MEM , PGA_MAX_MEM,PROGRAM FROM V$PROCESS ; PID USERNAME SERIAL# PGA_USED_MEM PGA_ALLOC_MEM PGA_FREEABLE_MEM PGA_MAX_MEM PROGRAM ---- ------ ------ ------------ ------------- ---------------- ----------- ------- 1 0 0 0 0 0 0 PSEUDO 2 SYSTEM 1 496078 581218 0 581218 ORACLE.EXE (PMON) |
SGAの状態を表示
>select * from V$SGASTAT; POOL NAME BYTES ------------ -------------------------- ---------- fixed_sga ********* buffer_cache ********* log_buffer ********* shared pool K2Q latches ********* shared pool kso req alloc ********* >show sga Total System Global Area 167772160 bytes(↓の合計値) Fixed Size 1247900 bytes Variable Size 79693156 bytes Database Buffers 83886080 bytes Redo Buffers 2945024 bytes |
自動管理のメモリを表示
>select component , current_size curr_size , min_size , max_size ,user_specified_size uss , granule_size gs from v$memory_dynamic_components where current_size > 0 ; COMPONENT CURR_SIZE MIN_SIZE MAX_SIZE USS GS ---------------------- ---------- ---------- ---------- ---------- ---------- shared pool ********** ********** ********** ********** ********* large pool ********** ********** ********** ********** ********* java pool ********** ********** ********** ********** ********* SGA Target ********** ********** ********** ********** ********* DEFAULT buffer cache ********** ********** ********** ********** ********* PGA Target ********** ********** ********** ********** ********* |
プログラム・グローバル領域(PGA)を確認する。
>column name format a25 >select s.sid , se.osuser , se.machine , se.program , se.last_call_et , se.status , max(s.value) memory from v$sesstat s inner join v$statname n on (n.statistic# = s.statistic#) inner join v$session se on (se.sid = s.sid) where n.name = 'session pga memory' group by se.osuser, se.machine, se.program, s.sid, se.last_call_et, se.status order by se.machine, s.sid ; SID OSUSER MACHINE PROGRAM LAST_CALL_ET STATUS MEMORY ---------- ----------- --------------- ----------------------- ------------ -------- ---------- 2 root Server1 JDBC Thin Client 394 INACTIVE 1111111 3 root Server2 JDBC Thin Client 13 INACTIVE 1111111 ※セッションの状態について ACTIVE - セッションがSQLを実行中 INACTIVE - 非アクティブで、制限が構成されていないか構成された制限を超えていないセッション KILLED - 消去予定のマーク付きセッション CACHED - Oracle*XAで使用するために一時的にキャッシュに入っているセッション SNIPED - 構成された制限(リソース・マネージャのコンシューマ・グループに指定されたリソース制限またはユーザー・プロファイルで指定されたアイドル時間など)のいくつかを超えている非アクティブ・セッション。このようなセッションが再びアクティブになることはできない。 ※LAST_CALL_ETはセッションのアイドル時間,最後に処理を行ってからの経過時間を表す |
実行中のSQLを取得する
SET LINE 1000; SET PAGES 1000; COLUMN SQL_TEXT FORMAT A100; COLUMN PROGRAM FORMAT A20; COLUMN PROGRAM FORMAT A20; COLUMN LOGON_USER FORMAT A20; SELECT SES.USERNAME, SES.SID, SES.SERIAL#, SES.STATUS, SES.MACHINE, SES.LAST_CALL_ET, SQL.SQL_TEXT FROM V$SESSION SES, V$SQLAREA SQL WHERE SES.SQL_ADDRESS = SQL.ADDRESS(+) AND SES.SQL_HASH_VALUE = SQL.HASH_VALUE AND SES.TYPE = 'USER' AND SES.STATUS = 'ACTIVE' ORDER BY SES.LOGON_TIME ; USERNAME SID SERIAL# STATUS MACHINE LAST_CALL_ET SQL_TEXT ---------- ----- ---------- -------- ---------- ------------ ---------------------------------------------------------------------------------------------------- SYS 135 2072 ACTIVE database 0 SELECT SES.USERNAME, SES.SID, SES.SERIAL#, SES.STATUS, SES.MACHINE, SES.LAST_CALL_ET, SQL.SQL_TEXT FROM V$SESSION SES, V$SQLAREA SQL WHERE SES.SQL_A DDRESS = SQL.ADDRESS(+) AND SES.SQL_HASH_VALUE = SQL.HASH_VALUE AND SES.TYPE = 'U SER' AND SES.STATUS = 'ACTIVE' ORDER BY SES.LOGON_TIME ※LAST_CALL_ETはセッションのアイドル時間,最後に処理を行ってからの経過時間を表す |
一時表領域の容量を確認する。
SELECT d.tablespace_name "Name", TO_CHAR(NVL(a.bytes / 1024 / 1024, 0),'99,999,990.900') "Size (M)", TO_CHAR(NVL(t.hwm, 0)/1024/1024,'99999999.999') "HWM (M)", TO_CHAR(NVL(t.hwm / a.bytes * 100, 0), '990.00') "HWM % " , TO_CHAR(NVL(t.bytes/1024/1024, 0),'99999999.999') "Using (M)", TO_CHAR(NVL(t.bytes / a.bytes * 100, 0), '990.00') "Using %" FROM sys.dba_tablespaces d, (select tablespace_name, sum(bytes) bytes from dba_temp_files group by tablespace_name) a, (select tablespace_name, sum(bytes_cached) hwm, sum(bytes_used) bytes from gv$temp_extent_pool group by tablespace_name) t WHERE d.tablespace_name = a.tablespace_name(+) AND d.tablespace_name = t.tablespace_name(+) AND d.extent_management like 'LOCAL' AND d.contents like 'TEMPORARY'; Name Size (M) HWM (M) HWM % Using (M) Using % ------------------------------ --------------- ------------- ------- ------------- ------- TEMP 10,240.000 1820.000 17.77 .000 0.00 |