1. 程式人生 > 資料庫 >Oracle資料庫遊標連線超出解決方案

Oracle資料庫遊標連線超出解決方案

oracle資料庫忽然連不上了,一查是遊標數量超了。

Oracle資料庫遊標連線超出解決方案

1.檢視遊標數

show parameter open_cursors

2.修改遊標數

alter system set open_cursors = 10000;

Oracle資料庫遊標連線超出解決方案

3.獲取開啟的遊標數

select o.sid,osuser,machine,count(*) num_curs
 from v$open_cursor o,v$session s
 where user_name = 'AF651_U8'
  and o.sid = s.sid
 group by o.sid,machine
 order by num_curs desc;
SID OSUSER MACHINE NUM_CURS

Oracle資料庫遊標連線超出解決方案

4.查詢某遊標執行的sql

select q.sql_text
 from v$open_cursor o,v$sql q
 where q.hash_value = o.hash_value
  and o.sid = 396;

Oracle資料庫遊標連線超出解決方案

5.解決問題的辦法:

  --1.查詢程式碼不合理的地方,修改程式碼。

  --2.重啟oracle資料庫

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。