Db2

DB2 LUW 伺服器上洩漏/未關閉的游標/語句的概述?

  • February 29, 2020

我們在 DB2/LUW 上遇到了“打開的游標過多問題”。

有沒有辦法獲得與這些打開的游標相關的相應 SELECT 語句的(數據庫伺服器端)列表?

我們一直在 Oracle 上這樣做。

我知道我們可以審查應用程序邏輯,但在我們的特定情況下要困難得多。所以我想先解決這個問題。謝謝。

SELECT 
 application_handle
, uow_id, activity_id, activity_type, activity_state
, timestampdiff(2, char(current timestamp - entry_time)) elapsed_sec
, stmt_text
FROM TABLE(MON_GET_ACTIVITY(null, -2))
order by elapsed_sec desc;

MON_GET_ACTIVITY 表函式 - 返回活動列表

作為對馬克的回答的補充,您可以檢查長期執行的交易:

select 
   x.agent_id, 
   substr(z.corr_TOKEN,1,14) as ip,
   cast(y.stmt_text as varchar(800)) as stmt, 
   x.locks_held, 
   x.APPL_IDLE_TIME, 
   x.UOW_START_TIME 
from sysibmadm.SNAPAPPL x 
join sysibmadm.snapstmt y 
   on x.agent_id = y.agent_id 
join sysibmadm.SNAPAPPL_INFO z
   on x.agent_id = z.agent_id
where UOW_STOP_TIME is null 
 and TIMESTAMPDIFF(2,CHAR(current_timestamp - UOW_START_TIME)) > 10
order by UOW_START_TIME
;

請注意,聲明為 WITH HOLD 的游標可能在送出後打開

引用自:https://dba.stackexchange.com/questions/260158