2016-11-07 6 views
-1

私はOracleデータベースを使用しています。今はJavaアプリケーションに接続されているOracle DBのパフォーマンスを監視していますので、アクティブな接続の数を監視する必要があります。定期的にDBは、以下のすべての30分後に言うことができます私はそこに名前と一緒にアクティブユーザーの数を返し、oracleジョブでデータベース内のアクティブな接続数をカウントする

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

を数える問合せは、今私はそのするOracle DB自体に仕事をすることができますどのようにアドバイスしてくださいされます30分ごとにトリガーされ、ユーザーごとのアクティブな接続の数であり、その時のOracle DBのメモリー使用量である上記照会結果を取得する

+0

これらは非常に異なる2つの質問です。何が助けを必要としますか?DBメモリの使用状況を取得するためにデータベースを照会する方法、またはdbms_schedulerを使用して30分ごとにジョブを実行する方法を教えてください。あなたがこの投稿を削除し、代わりに2つずつ作成して、それぞれの質問を別々に尋ねるのが最善の方法です。たとえば、私は最初のものを助けることができます。私はスケジューラーを使用していないので、私は2番目の助けができません。 – mathguy

答えて

0

この質問を削除し、2つの別々の質問として質問する必要があります(あなたの質問の下のコメントを参照)。あなたは2つの質問をしています: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 
関連する問題