2014-04-28 42 views
0

我在我的應用程序中有oracle 10g數據庫。如何找出特定記錄在特定表格中被訪問了多少次。如何查找爲oracle訪問記錄次數

+0

你找不到。 –

+0

@juergend我可以找到任何記錄是否根本不被訪問? – user3082228

+0

我對此表示懷疑。你需要在你的程序邏輯中實現它。 –

回答

2

一般來說,要做到這一點,您需要通過存儲過程訪問表中的記錄,而不是通過SELECT語句。

但是,在這裏是如何可以簡化爲:

  1. 您添加任何選擇你的表應該有一個函數調用一個要求:

    select yourtable.* from yourtable 
    where yourfunct('yourtable', yourtable.key) = 'done' 
    

    這可以通過輕鬆完成視圖加上撤銷權限來讀取表格本身

  2. 在你的函數中,你可以在表格中保存表格/密鑰對(你不需要st藝術是一個交易來做到這一點),或者你開始一個自治事務並寫入一個真正的表。

    寫入包中的變量並不安全,但速度更快。

    創建一個交易是slooooooower,但它會garantie結果。

我個人的偏好是質疑原來的任務。也許這足以創建記錄數據請求的「日誌條目」表。

+0

通過使用[虛擬專用數據庫](http://docs.oracle.com/cd/E11882_01/network.112/e36292/vpd.htm#DBSEG007)可能會使#1自動化。 VPD允許函數返回一個旨在控制訪問的謂詞。該函數總是可以返回true,但是具有記錄訪問請求的副作用。但是我懷疑可以以100%的準確率記錄所有訪問,沒有人真正知道SQL語句的部分運行次數。 VPD只能做一個粗略的估計。 –