java web 耗时请求_javaweb应用中出现了一个耗时异常长的数据查询,寻求帮助
項目使用SSM,oracle 11g,linux服務器,生產環境與測試環境代碼相同,數據庫不同,相關細節配置可能不同。
業務需要根據關鍵字查詢系統中人員的相關信息,用戶輸入一個關鍵字,能夠模糊查詢一張視圖中4個字段的數據。
SELECT
A .userId,
A .account,
A .name,
A .mobile,
A .code,
A .phone,
A .email,
A .sort
FROM
USER A
INNER JOIN USER_ORG b ON A .userId = b.userId
INNER JOIN ORG c ON b.orgId = c.orgId
WHERE
(a.name LIKE '%18888888888%' OR a.mobile LIKE '%18888888888%' OR a.phone LIKE '%18888888888%' OR a.email LIKE '%18888888888%')
AND A .userId != 100000000000000
AND c.isAvalible = 1
ORDER BY
A .sort ASC
查詢語句如上,應該并不復雜,USER數據量15000左右,ORG數據量1000左右。通過plsql直接查庫,耗時0.5s左右。項目上線運行初期,這個查詢響應正常。幾天后上線另一個頁面,同樣使用了這個查詢接口(代碼邏輯基本一致,調用Service中同一個方法,指向map中同一個sql,只有拼接語句時的一個if判斷條件不同,最終呈現的查詢語句是相同的),響應耗時正常。但前一個頁面在執行這個查詢時出現了問題,后臺拋出如下異常:
登錄數據庫服務器排查,發現500多G的臨時表空間使用達到100%,只剩余十幾M。加大臨時表空間后,不再報錯,但是這個查詢變得異常耗時。
但項目中其他查詢都還能正常執行,好像沒有出現同樣的狀況,包括前面提到的使用同一個查詢方法的頁面。
在測試環境和生產環境上對出現問題的查詢打印代碼執行的耗時,如下圖:
測試環境:
正式環境:
生產環境與測試環境代碼相同,數據庫不同,相關細節配置可能不同。現在沒有頭緒是哪里出了問題……求助>_
總結
以上是生活随笔為你收集整理的java web 耗时请求_javaweb应用中出现了一个耗时异常长的数据查询,寻求帮助的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: isis中的骨干区域全由什么路由器构成
- 下一篇: java画虚线_java cansvas