我們正在爲我們的報告應用程序之一使用Jasper報告,並使用'SELECT'查詢來獲取數據並使用Jasper報告模板生成報告。他們是一些舊的查詢,有些沒有調整,他們的性能取決於他們採取的參數。以前的日期範圍,類別等Jasper報告導致使用SELECT語句的CURSOR問題
最近,我們遇到了奇怪的遊標問題,應用程序所支持的遊標數很高,有時高達900,這導致了一些嚴重的空間問題。我們正在手動關閉它們以暫時解決此問題。然而,這個問題一再出現,並且一直是一個嚴重的問題。
我對'SELECT'語句的理解是他們會隱式使用CURSOR方法,但要確保一旦操作完成,它們就會關閉。而且我們對應用程序方面沒有太多的控制。
調試/故障排除問題:
- 數據庫使用 - 甲骨文,賈斯珀 - JasperReports的-3.7.0,ODBC驅動程序 - ojdbc14
我們跑不過DBA查詢,看看有沒問題,它只是一個 定期SELECT查詢,我們沒有明確地創建任何遊標。
將DB調用更改爲只讀狀態,不起作用。
看起來像Jasper服務器使用常規的JDBC準備語句 - ODBC 驅動程序 - ojdbc14。
沒有使用分頁。
問題:
我們走出引線在這個問題上,如果有人能幫助我們這一點,將是巨大的。
編輯
SID = 4385具有帶有開放光標的計數
SQL_ID COUNT(*)
- djuwsn5numsqv以下SQL 2
- fw5920rbrun82 131 0wk7fbztn67zh 1
- c29qmb59gggtv 1
- 6y1ajq8xaw294 1
- 9q3btvwzg96k6 487 ------- >>>
- 3zzkryq60kua1 1
- anp287ycdrnp6 1
- 58tzy7dhpwnq4 1
- cfgz3kzhx53jy 1
- 0bxwy62tx9n2w 1
- cygg3t2hc6mr2 12
- 29s08m4n6xuwt 1
sql_id = 9q3btvwzg96k6不斷打開新的遊標。
您是否收到錯誤消息?它是遊標還是會話?如果你得到一個ORA-xxxxx消息,它會幫助你發佈它。 –
打開jasper-reports中的日誌記錄以獲取更多信息log4j.logger.net.sf.jasperreports.engine.query = debug –
@PetterFriberg我打開了日誌記錄並監視了幾天。沒有什麼奇怪的,除了它顯示結果集被更頻繁地迭代。但是,我認爲沒關係。即使報告正在被各種用戶使用。 – puri