2015-11-26 19 views
0

有什麼辦法可以捕獲每個變化發生在v$session表?

active session history沒有任何變化。我試圖編寫一個PL/SQL塊,將每秒鐘將v$session表的所有內容複製到另一個表中。但是,由於我錯過了許多活動/不活動/終止狀態更改,還有一秒還太長。

是否可以寫入類似於觸發器的內容,以便在發生任何插入/更新/刪除操作時複製更改? 我試圖在v$session上創建觸發器,但看起來像那些觸發器不能像v$session這樣的視圖創建。

基本上我正在尋找的是任何方式來捕獲v$session中的所有更改。

因此,我打算做一些趨勢分析來識別會話行爲。

任何幫助?

PS:有人可以告訴什麼是v$session的刷新率?有了這些信息,如果我在刷新率的時間間隔內捕獲所有內容,我應該能夠捕獲我相信的所有更改。

有什麼建議嗎?

回答

1

V$SESSION建於X$表之上,因此沒有刷新率。 X$表映射到Oracle內存結構。所以它總是顯示當前數據,沒有讀取一致性模型。

V$ACTIVE_SESSION_HISTORY基本上每隔一秒對所有會話進行採樣。默認情況下,每個第10個樣本都保留在自動工作量存儲庫中並且DBA_HIST_ACTIVE_SESS_HISTORY

如果您對會話狀態更改感興趣,有連接和斷開操作的數據庫級別觸發器以及DDL觸發器,因此您也可以檢測到ALTER SYSTEM KILL SESSION

相關問題