指令碼:監控當前活動的語句
$more get_active_sql.sh
sqlplus -s /nolog <connect user/pass
set serveroutput on size 1000000
set lines 200
set pages 1000
set feedback off
column username format a72 word_wrapped
column program format a72 word_wrapped
column sql_text format a72 word_wrapped
declare
-- 自定義的儲存過程,可以在一行內列印250個字元以上
procedure p (p_str in varchar2)
is
l_str long := p_str;
begin
loop
exit when l_str is null;
dbms_output.put_line(substr(l_str, 1, 250));
l_str := substr(l_str, 251);
end loop;
end;
-- 獲得狀態為ACTIVE的列表資訊
begin
for x in (select * from (select a.username||'('||a.sid||','||a.serial#||') spid='||b.spid||
' hash_value='||to_char(a.sql_hash_value) username,
'program='||a.program||' et='||last_call_et program,sql_address
from v\$session a,v\$process b
where a.status = 'ACTIVE'
and a.paddr = b.addr
and rawtohex(sql_address) <> '00'
and a.username is not null
and sid <> (select sid from v\$mystat where rownum=1)
order by last_call_et desc) where rownum < 10)
loop
-- 列印狀態資訊
dbms_output.put_line( '--------------------------------------------------' );
dbms_output.put_line( x.username );
dbms_output.put_line( x.program );
-- 列印 SQL 語句
for y in ( select sql_text
from v\$sqltext_with_newlines
where address = x.sql_address
order by piece )
loop
p(y.sql_text);
end loop;
end loop;
end;
/
exit
EOF
呼叫方法:
$./get_active_sql.sh
sqlplus -s /nolog <
set serveroutput on size 1000000
set lines 200
set pages 1000
set feedback off
column username format a72 word_wrapped
column program format a72 word_wrapped
column sql_text format a72 word_wrapped
declare
-- 自定義的儲存過程,可以在一行內列印250個字元以上
procedure p (p_str in varchar2)
is
l_str long := p_str;
begin
loop
exit when l_str is null;
dbms_output.put_line(substr(l_str, 1, 250));
l_str := substr(l_str, 251);
end loop;
end;
-- 獲得狀態為ACTIVE的列表資訊
begin
for x in (select * from (select a.username||'('||a.sid||','||a.serial#||') spid='||b.spid||
' hash_value='||to_char(a.sql_hash_value) username,
'program='||a.program||' et='||last_call_et program,sql_address
from v\$session a,v\$process b
where a.status = 'ACTIVE'
and a.paddr = b.addr
and rawtohex(sql_address) <> '00'
and a.username is not null
and sid <> (select sid from v\$mystat where rownum=1)
order by last_call_et desc) where rownum < 10)
loop
-- 列印狀態資訊
dbms_output.put_line( '--------------------------------------------------' );
dbms_output.put_line( x.username );
dbms_output.put_line( x.program );
-- 列印 SQL 語句
for y in ( select sql_text
from v\$sqltext_with_newlines
where address = x.sql_address
order by piece )
loop
p(y.sql_text);
end loop;
end loop;
end;
/
exit
EOF
呼叫方法:
$./get_active_sql.sh
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11411056/viewspace-734292/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 監控當前資料庫的活動session資料庫Session
- 監控使用高cpu的sql語句指令碼SQL指令碼
- 監控指令碼指令碼
- 【SQL監控】SQL完全監控的指令碼SQL指令碼
- mysql 的一個監控指令碼,監控heartbeatMySql指令碼
- mysql監控指令碼MySql指令碼
- DBA監控指令碼指令碼
- session指令碼監控Session指令碼
- 埠監控指令碼指令碼
- oracle 監控指令碼Oracle指令碼
- listener監聽監控指令碼指令碼
- mysql mon 的一個監控指令碼,監控heartbeatMySql指令碼
- Shell 指令碼語句指令碼
- Oracle常用效能監控語句解析Oracle
- ogg監控指令碼指令碼
- stap監控IO指令碼指令碼
- 【shell】磁碟監控指令碼指令碼
- SQL提取當前庫內索引的建立語句SQL索引
- 監控oracle的觸發器語句(轉)Oracle觸發器
- systemtap的網路監控指令碼指令碼
- Oracle 資料庫監控SQL語句Oracle資料庫SQL
- PostgreSQL之鎖監控指令碼SQL指令碼
- Oracle DBA常用監控指令碼Oracle指令碼
- memcached程式埠監控指令碼指令碼
- Nagios 監控ESXI指令碼iOS指令碼
- 監控cpu與memory指令碼指令碼
- 資料庫監控指令碼資料庫指令碼
- (Datagurad)監控指令碼指令碼
- 監控session數量指令碼Session指令碼
- 監控硬碟空間指令碼硬碟指令碼
- 監控sqlldr執行指令碼SQL指令碼
- 監控資料庫指令碼資料庫指令碼
- cacti自定義監控指令碼指令碼
- Oracle-監控sql語句的過載率OracleSQL
- 《boot分割槽監控的小指令碼》boot指令碼
- 常用的主機監控shell指令碼指令碼
- 監控mysql索引使用效率的指令碼MySql索引指令碼
- 查詢當前正在執行的SQL語句並KILLSQL