Oracle全部索引丟失導致的效率問題處理
文章版權所有Jusin Hao(luckyfriends),支援原創,轉載請註明。
作業系統aix,存在有程式長時間佔用cpu達24%;如下程式對應sql語句,
等待事件:latch free
同樣的sql等待時間一會兒 有變成SQL*NET memssage from client;
SELECT scm_batchcode.tbatchtime, scm_batchcode.dproducedate, scm_batchcode.dvalidate, scm_batchcode.vvendbatchcode, scm_batchcode.cqualitylevelid, scm_batchcode.vnote, scm_batchcode.tchecktime, scm_batchcode.pk_batchcode, scm_batchcode.bseal, scm_batchcode.ts, scm_batchcode.vdef1, scm_batchcode.vdef2, scm_batchcode.vdef3, scm_batchcode.vdef4, scm_batchcode.vdef5, scm_batchcode.vdef6, scm_batchcode.vdef7, scm_batchcode.vdef8, scm_batchcode.vdef9, scm_batchcode.vdef10, scm_batchcode.vdef11, scm_batchcode.vdef12, scm_batchcode.vdef13, scm_batchcode.vdef14, scm_batchcode.vdef15, scm_batchcode.vdef16, scm_batchcode.vdef17, scm_batchcode.vdef18, scm_batchcode.vdef19, scm_batchcode.vdef20, scm_batchcode.binqc, scm_batchcode.pk_defdoc1, scm_batchcode.pk_defdoc2, scm_batchcode.pk_defdoc3, scm_batchcode.pk_defdoc4, scm_batchcode.pk_defdoc5, scm_batchcode.pk_defdoc6, scm_batchcode.pk_defdoc7, scm_batchcode.pk_defdoc8, scm_batchcode.pk_defdoc9, scm_batchcode.pk_defdoc10, scm_batchcode.pk_defdoc11, scm_batchcode.pk_defdoc12, scm_batchcode.pk_defdoc13, scm_batchcode.pk_defdoc14, scm_batchcode.pk_defdoc15, scm_batchcode.pk_defdoc16, scm_batchcode.pk_defdoc17, scm_batchcode.pk_defdoc18, scm_batchcode.pk_defdoc19, scm_batchcode.pk_defdoc20 FROM scm_batchcode WHERE scm_batchcode.pk_invbasdoc = :1 AND scm_batchcode.vbatchcode = :2
系統慢問題:
1. 修改憑證後儲存憑證也異常的慢,需要時間20秒左右
該sql的執行計劃
發現此表上只有一個主鍵的唯一索引;
查詢資料庫發現nc所有的表基本上都是隻有主鍵上的索引;非唯一所以只有三個;
驗證加索引後問題可解決:
Create Index I_gl_detail_1 On gl_detail(pk_voucher);
原來是之前儲存壞的時候,客戶dba 進行exp備份時設定了錯誤的引數,導致沒有備份索引,後匯入丟失了索引
解決方法:利用歷史備份匯出索引建立檔案:
imp tb20111018/oracle@nbtb53 file=F:\tb20111018\yydatabakup\nc52.dmp log=F:\tb20111018\yydatabakup\nc52.log full=y feedback=10000 buffer=10240000 rows=N indexes=Y ignore=Y INDEXFILE=F:\tb20111018\yydatabakup\create_index.txt
利用巨集剔除特殊字元等
去掉建立表的語句
然後儲存為sql指令碼,執行該建立索引的指令碼。
建完索引後原來有問題的業務操作對應的sql堆疊發現sql語句已經不再是很長時間,而是ms級;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14710393/viewspace-1082708/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於Cordova框架對URL攔截導致通訊丟失問題的處理框架
- Oracle_dg歸檔丟失問題處理Oracle
- 儲存崩潰導致資料丟失如何處理
- 使用impdp不當導致的資料丟失問題
- 關於 iconv 轉碼導致資料丟失的問題
- cassandra tombstone導致寫資料丟失問題徵解
- 非索引列直方圖的丟失導致sql效能急劇下降索引直方圖SQL
- Verdaccio publish 時包含 deprecated 導致歷史版本丟失問題原因分析
- crontab導致CPU異常的問題分析及處理
- 使用資料庫處理併發可能導致的問題資料庫
- sqlldr標準輸出未處理導致批處理掛起問題SQL
- 執行計劃問題導致處理速度時快時慢的問題
- 如何處理RabbitMQ 訊息堆積和訊息丟失問題MQ
- oracle中undo表空間丟失處理方法Oracle
- Oracle DataGuard歸檔日誌丟失處理方法Oracle
- Nginx session丟失問題處理解決方法NginxSession
- EfCore3的OwnedType會導致Sql效率問題SQL
- git合併丟失程式碼問題分析與解決(錯誤操作導致)Git
- ORACLE 分割槽索引UNUSABLE導致的DML操作失敗引起的血案Oracle索引
- Oracle歸檔檔案丟失導致OGG不用啟動Oracle
- oracle 線上日誌全部丟失的資料恢復Oracle資料恢復
- Oracle 12c因bug導致ORA-04031問題處理過程Oracle
- 【問題處理】恢復因誤生成PFILE 導致RAC的SPFILE無效的問題
- Nginx轉發導致請求頭丟失Nginx
- start_udev導致監聽自動停止問題處理dev
- oracle 案例-控制檔案丟失故障處理過程Oracle
- 克隆ORACLE軟體的導致的問題Oracle
- 【RAC】處理因ons導致CPU使用率過高的問題
- oracle 小數點前零丟失的問題<轉>Oracle
- 控制檔案丟失處理方法
- Jison解決JS處理後端返回的Long型資料精度丟失問題JS後端
- Oracle OS認證、口令檔案、密碼丟失處理Oracle密碼
- 控制檔案全部丟失的恢復
- Oracle優化案例-join列索引缺失導致的sql效能問題(二十六)Oracle優化索引SQL
- ORACLE DML執行計劃頻繁變更導致業務響應極慢問題的處理Oracle
- 【故障處理】因授權資訊丟失導致IMP時出現IMP-00041錯誤的模擬與分析
- redo log檔案丟失處理措施
- lvm資訊丟失處理辦法LVM