簡體   English   中英

如何捕獲Oracle v $ session中的每個更改?

[英]How to capture each changes in v$session in Oracle?

有什么方法可以捕獲v$session表發生的每一項更改?

active session history並不具有所有更改。 我試圖編寫一個PL / SQL塊,該塊每秒將v$session表的所​​有內容復制到另一個表中。 但是,一秒鍾仍然太長,因為我錯過了許多活動/不活動/終止狀態更改。

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

基本上,我正在尋找可以捕獲v$session所有更改的任何方法。

這樣,我計划進行一些趨勢分析以識別會話行為。

有什么幫助嗎?

PS:有人可以告訴我v$session的刷新率是多少嗎? 有了這些信息,如果我在刷新率的時間間隔內捕獲了所有內容,那么我應該能夠捕獲到我認為的所有更改。

有什么建議么?

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

V$ACTIVE_SESSION_HISTORY基本每秒對所有會話進行采樣。 並且默認情況下,每10個樣本都會保存在“自動工作量存儲庫”和DBA_HIST_ACTIVE_SESS_HISTORY

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM