select b.username username,a.disk_reads reads,
a.executions exec,a.disk_reads/decode(a.executions,0,1,a.executions) rds_exec_ratio,
a.sql_text statement,
a.cpu_time,a.cpu_time/decode(a.executions,0,1,a.executions)
from v$sqlarea a,dba_users b
where a.parsing_user_id=b.user_id
order by a.cpu_time desc;
下面是各個欄位的意思:
v$sqlarea:oracle動態效能表
disk_reads 所有子游標讀取硬碟資料總和
executions 所有子游標的執行數目
sqltext 當前游標的對應的sql語句的頭1000個字元
cpu_time 該游標用於解析、執行和取資料的cpu時間,單位毫秒
dba_users:使用者資訊表
username 使用者名稱
user_id 使用者id號,是乙個數字
這樣的話,用此sql可以檢視哪句sql執行太慢,可以考慮進行效能優化。下面介紹下查詢是否鎖表的方法:
1-------查詢當前會話
select case when r.session_id is not null and r.status = 'suspended'then 'suspended' when
max(decode(s.serial#,l.serial#,1,0)) = 1 then 'long operations' else 'regular' end, s.sid,s.status,
s.username, rtrim(s.osuser), b.spid, s.machine, s.program, s.resource_consumer_group, r.timeout
from v$session s, v$session_longops l, v$process b, dba_resumable r
where (s.sid = l.sid(+)) and (s.sid = r.session_id(+)) and s.paddr=b.addr
and s.status='active'
group by r.session_id, r.error_number, r.status, s.sid,
s.status, s.username, s.osuser, b.spid, s.machine,
s.program,s.resource_consumer_group, r.timeout;
2-----獲取對話位址及hash值
select decode(sql_address,'00',prev_sql_addr,sql_address) sql_address,decode(sql_hash_value,0,
prev_hash_value,sql_hash_value) sql_hash_value
from v$session where sid =26;
3-----根據對話位址及hash值查詢執行sql
select distinct piece, sql_text, command_type from v$sqltext_with_newlines
where rawtohex(address)='070000012d441468' and hashvalue='3018797201';
4----查詢對話serial號
select serial#, username, schemaname, osuser, terminal, machine, program, status,type,saddr,
logon_time,sysdate - last_call_et / 86400, resource_consumer_group
from v$session where sid =26;
5----終止對話
alter system kill session '26,35851'; (sid,serial#)
linux 查詢磁碟占用情況
root study df ahikhtm 目錄或檔名 選項與引數 a 列出所有的檔案系統,包括系統特有的 proc等檔案系統 k 以kbytes的容量顯示各檔案系統 m 以mbytes的容量顯示各檔案系統 h 以m 1000k取代m 1024k的進製方式 t 連同該partition的filesy...
Linux監控CPU 記憶體 GPU占用情況
因為最近要跑網路,想盡量提高伺服器利用率,因此這裡記錄下如何監控各硬體使用情況。首先,cpu和記憶體可以直接執行 top然後出來的介面就能看到cpu和視訊記憶體mem的使用情況了。但是這個介面全是數值,不好用。這裡推薦使用htop。執行 sudo apt get install htop htop然...
Windows如何查詢本機埠占用情況
經常,我們在啟動應用的時候發現系統需要的埠被別的程式占用,如何知道誰占有了我們需要的埠,很多人都比較頭疼,下面就介紹一種非常簡單的方法,希望對大家有用 假如我們需要確定誰占用了我們的80埠 1 windows平台 在windows命令列視窗下執行 c netstat aon findstr 80 t...