資料庫:oracle
有乙個流水表,表資料量千萬級,乙個管理臺常用條件分頁查詢突然變慢,有日期條件且有索引。
部署伺服器是多台,資料庫查詢操作使用hibernate框架。
逐台伺服器sql日誌跟蹤排查,根據hibernate發出sql語句,在oracle資料庫檢查對應的執行計畫,
使用檢視:
v$sql:獲取找到sql語句對應的sql_id和plan_hash_value。
再從v$sql_plan根據上面兩個條件找到對應的執行計畫。
由於hibernate生成sql語句每台機器雖然介面操作查詢條件一致,但是每台機器最後生成的sql語句不同(欄位從重新命名 as帶有不通字尾),資料庫當做不同的sql語句。走不同執行計畫。
最後發現某一台分頁統計count語句執行計畫沒有走索引,進行全表掃瞄,由於資料量大導致該語句耗時較長導致查詢變慢很多。
至於為什麼oracle為什麼進行全表掃瞄二不走索引,資料庫進行表分析時候人認為走全表快,不是很清除。問題找到了不管了,留給專業人士解決。
問題排查:
逐台查詢日誌,發現某一台伺服器分頁count語句和取某頁具體資料兩個動作之間log日誌時差較大。
weblogic日誌有 阻塞stackmaxtime 600s執行緒異常,錯誤棧已經到oracle socket通訊。
資料庫查詢對應執行計畫
記一次生產報too man open files
有一天私有雲無法訪問,馬上聯絡廠商,最後廠商發現好多容器不停重啟,經過日誌檢視發現平台開啟檔案控制代碼太多,很奇怪,就開始排查,最後發現乙個埠,定位到應用spring actuator.這個應用是我為了監控微服務而發布的乙個監控應用,馬上看日誌,發現應用報錯,too many open files,...
記一次生產環境MySQL資料庫的備份與還原
一 背景 公司的生產環境某些應用的資料庫是部署在vmware平台上的,為了節約成本,領導現考慮將全部資料遷移至居於kvm的cas平台。之前做的是v2v遷移,但是效率不高,綜合了一下時間成本及其他因素,最終選擇採用備份與還原的方式進行遷移。源庫中有geekdevops gsms geekdevops ...
Oracle 一次生產分庫,公升級,遷移
分庫目的 2 新庫公升級oracle10.2.0.1到10.2.0.4,資料庫本身修復了很多bug,增強了資料庫的穩定性.3 調整定時任務,把原先的定時任務由crontab job方式改為oracle scheduler.大概操作步驟如下 1 提前安裝oracle10.2.0.4,並部署stream...