2016-11-07 40 views
-1

我正在使用oracle數據庫,現在我正在監視連接到我的java應用程序的oracle數據庫的性能,所以現在我必須監視活動連接的數量DB定期讓說後低於每30分鐘是恢復我的活躍用戶數量與那裏的名字一起查詢和統計oracle job來計算數據庫中的活動連接數

select osuser, count(osuser) as active_conn_count 
from v$session 
group by osuser 
order by active_conn_count desc 

現在請各位指教我怎樣才能在Oracle數據庫本身的工作即會每30分鐘觸發一次,並捕獲上述查詢結果,即根據用戶的活動連接數以及當時的Oracle DB內存使用情況。

+0

這是兩個非常不同的問題。您需要什麼幫助 - 如何查詢數據庫以獲取數據庫內存使用情況,或者如何使用'dbms_scheduler'每30分鐘運行一次作業?如果你想刪除這篇文章,並創建兩個,最好是單獨詢問每個問題。例如,我可以幫助第一個;我沒有使用調度器,所以我無法幫助第二個。 – mathguy

回答

0

你應該刪除這個問題,並把它作爲兩個單獨的問題(請參閱我的問題)。你問了兩個問題:1.如何獲得內存使用量; 2.如何安排工作。只回答第一個問題。

爲了讓內存使用情況,你可以(在這一刻從我的數據庫中的輸出),可以這麼用:

select case grouping_id(nm) when 1 then 'total' else nm end as nm, 
     round(sum(val/1024/1024)) mb 
from (
     select 'sga' nm, sum(value) val 
     from v$sga 
     union all 
     select 'pga', sum(value) 
     from v$sysstat 
     where name = 'session pga memory' 
) 
group by rollup(nm) 
; 

NM  MB 
----- ---- 
pga  49 
sga 4896 
total 4945