sql執行cpu占用情況查詢,查表是否已鎖

2021-09-01 10:46:50 字數 2193 閱讀 5326

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...