我從SQL Developer會話中運行SQL刪除,並且由於有大量記錄,刪除運行很長時間。由於SQL Developer客戶端存在一些Not Responding問題,因爲SQL Developer窗口關閉,所以我丟失了會話。如何查找在oracle中的表上運行的查詢
我沒有DBA訪問權限,我無法查詢像v $ session,v $ sqlarea等視圖,但SQL仍在數據庫上運行。只要我插入一些記錄,它會刪除它們。 如何在查詢DBA之前查詢/確認此查詢仍在運行?
我從SQL Developer會話中運行SQL刪除,並且由於有大量記錄,刪除運行很長時間。由於SQL Developer客戶端存在一些Not Responding問題,因爲SQL Developer窗口關閉,所以我丟失了會話。如何查找在oracle中的表上運行的查詢
我沒有DBA訪問權限,我無法查詢像v $ session,v $ sqlarea等視圖,但SQL仍在數據庫上運行。只要我插入一些記錄,它會刪除它們。 如何在查詢DBA之前查詢/確認此查詢仍在運行?
「但SQL仍然在 數據庫中運行。當我插入一些 記錄,它會刪除它們。」
這有點難以相信。如果你的「SQL刪除」是一個簡單的DELETE FROM your_table
那麼它不能刪除你的新記錄。 Oracle的讀一致性模型將不允許它。所以,要麼你錯了,要麼你做了更復雜的事情。
如果您已經發出長時間運行的DELETE,它可能會在視圖V $ SESSION_LONGOPS中顯示爲長時間操作。並非一切都包括在內。 Find out more。
select sid
, serial#
, opname
, sofar
, totalwork
, start_time
, last_update_time
, time_remaining
, elapsed_seconds
, sql_address
, sql_hash_value
, sql_id
from v$session_longops
where username = &your_username
and time_remaining != 0 ;
沒有DBA訪問,您將無法使用這些信息,如SQL_ADDRESS查找在V $ SQL中運行的精確SQL。但希望你不會有太多的點擊。
你應該去你的DBA,解釋你的想法正在發生,並一起分析問題。當我插入一些記錄,它會刪除它們
:
你的問題的這部分讓我爲難。
您啓動的刪除事務無法刪除您在啓動刪除事務後插入的記錄,這稱爲讀取一致性。