指令碼:監控當前活動的語句
$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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Shell 指令碼語句指令碼
- 【shell】磁碟監控指令碼指令碼
- shell指令碼監控啟動停止weblogic服務指令碼Web
- 監控資料庫活動資料庫
- PostgreSQL之鎖監控指令碼SQL指令碼
- 用於自動監控磁碟使用情況的 Shell 指令碼指令碼
- 監控系統告警指令碼集合指令碼
- 監控磁碟使用率的shell指令碼指令碼
- Shell 系統資訊監控指令碼指令碼
- 關於前端指令碼異常監控的思考前端指令碼
- Shell指令碼之for迴圈語句的應用指令碼
- 在當前活動結束前,SuperMemo的鬧鐘將發出警報。
- Sqlserver自動查詢缺失索引及拼出建立索引的語句的指令碼SQLServer索引指令碼
- 如何快速定位當前資料庫消耗 CPU 最高的 sql 語句?資料庫SQL
- 監控 Linux 伺服器活動的幾個命令Linux伺服器
- Mac系統活動監控器:iStat MenusMac
- iStat Menus for Mac 系統活動監控器Mac
- iStat Menus for Mac(系統活動監控器)Mac
- 系統活動監控器:iStat Menus MacMac
- 寫了個監控 ElasticSearch 程式異常的指令碼!Elasticsearch指令碼
- centos 監控web站點是否500 指令碼CentOSWeb指令碼
- shell指令碼:監控MySQL服務是否正常指令碼MySql
- 網路卡流量監控指令碼,python實現指令碼Python
- Shell指令碼監控MySQL主從狀態指令碼MySql
- Shell指令碼應用 – for、while迴圈語句指令碼While
- iStat Menus for Mac(系統活動監控器)中文Mac
- 基於Ping和Telnet/NC的監控指令碼案例分析指令碼
- JS指令碼中重新整理當前頁面的方法JS指令碼
- Linux Shell指令碼程式設計while語句案例Linux指令碼程式設計While
- Jack對分支迴圈語句偽指令反彙編前後的比較
- 利用 Shell 指令碼來監控 Linux 系統的記憶體指令碼Linux記憶體
- 在 Linux 上用 Bash 指令碼監控 messages 日誌Linux指令碼
- 使用Shell指令碼程式監控網站URL是否正常指令碼網站
- HackingTeam原始碼洩漏——語音監控分析原始碼
- 寶塔liunx控制皮膚,監控程式斷了以後自動重啟的指令碼指令碼
- 系統活動監控:iStat Menus mac中文啟用版Mac
- 用 Bash 指令碼監控 Linux 上的記憶體使用情況指令碼Linux記憶體
- zabbix-mongodb監控指令碼(高效能、低佔用)MongoDB指令碼
- 透過shell指令碼監控日誌切換頻率指令碼