一個併發事件的阻塞問題
兄弟我現在有:
環境:Oracle8.1.7.4 OPS
一個range分割槽表:
create table T
(col_a date,
col_b number,
col_c number,
col_d varchar2(20),
....
)
分割槽鍵為col_a,現在按年份分了五個區。
兩個非字首local索引:
idx_a(col_b)
idx_b(col_b,col_c)
資料量大約1000w,資料在分割槽上分佈不均勻,大部分在兩個分割槽上。
現在有一個查詢:
select .... from T where col_b=:b and col_c=:c
預期fetch記錄數10以內。
同一SQL,併發900多個session,出現問題。
900多個session只有幾個active,其它都inactive。
等待buffer cache。
系統資源閒置(CPU佔用和記憶體佔用低)
trace跟蹤一下,發現sql執行計劃:
index idx_b:fast full scan
一次sql讀取了50000多個block,出現大量的GC cache的等待和db file一直讀取的等待。
sql加上hint:/*+index(T idx_b)*/,執行計劃改變:
index idx_b:range scan
瞬間響應。
檢視idx_b的degree,為1。
應用程式的SQL語句為不能修改,使用outline無效,鬱悶!
請大家給分析分析
環境:Oracle8.1.7.4 OPS
一個range分割槽表:
create table T
(col_a date,
col_b number,
col_c number,
col_d varchar2(20),
....
)
分割槽鍵為col_a,現在按年份分了五個區。
兩個非字首local索引:
idx_a(col_b)
idx_b(col_b,col_c)
資料量大約1000w,資料在分割槽上分佈不均勻,大部分在兩個分割槽上。
現在有一個查詢:
select .... from T where col_b=:b and col_c=:c
預期fetch記錄數10以內。
同一SQL,併發900多個session,出現問題。
900多個session只有幾個active,其它都inactive。
等待buffer cache。
系統資源閒置(CPU佔用和記憶體佔用低)
trace跟蹤一下,發現sql執行計劃:
index idx_b:fast full scan
一次sql讀取了50000多個block,出現大量的GC cache的等待和db file一直讀取的等待。
sql加上hint:/*+index(T idx_b)*/,執行計劃改變:
index idx_b:range scan
瞬間響應。
檢視idx_b的degree,為1。
應用程式的SQL語句為不能修改,使用outline無效,鬱悶!
請大家給分析分析
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7319461/viewspace-765268/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- .NET WebSocket高併發通訊阻塞問題Web
- HTTP 協議中的併發限制及隊首阻塞問題HTTP協議
- 求職一個Swing事件問題求職事件
- 深入解析 TiFlash丨多併發下執行緒建立、釋放的阻塞問題執行緒
- [貝聊科技]一個頁面阻塞問題的排查過程
- 一次TiDB GC阻塞引發的效能問題分析TiDBGC
- 關於vue事件監聽的一個問題Vue事件
- oracle併發問題Oracle
- 前端每日一問--JS 和 CSS 阻塞問題前端JSCSS
- 併發處理中的問題以及解決這些問題的併發模型模型
- 一個考併發的面試題,怎麼答??面試題
- 聊聊併發(四)——阻塞佇列佇列
- 一個微信面試題引發的血案 --[譯] 什麼阻塞了 DOM?面試題
- [併發程式設計]-關於 CAS 的幾個問題程式設計
- touch事件和click事件多次觸發的問題事件
- WTC連線阻塞的問題
- mysql併發操作問題MySql
- 【OS】同步非同步/阻塞非阻塞、併發並行序列的區分非同步並行
- Laravel event 事件使用中 記錄的一個小問題Laravel事件
- 解決一個C#中定時任務被阻塞問題C#
- Redis實現併發阻塞鎖方案Redis
- Java併發——阻塞佇列集(下)Java佇列
- Java併發——阻塞佇列集(上)Java佇列
- ♻️同步和非同步;並行和併發;阻塞和非阻塞非同步並行
- python合併多個csv檔案需要注意的問題(合併多個列名問題)Python
- ANALYZE導致的阻塞問題分析
- 由面試題“併發程式設計的三個問題”深入淺出Synchronied面試題程式設計
- 併發問題處理方式
- Java之併發三問題Java
- 併發執行hang問題
- 資料庫併發問題資料庫
- 資料併發問題收藏
- Redis阻塞問題排查方向Redis
- 程式執行緒、同步非同步、阻塞非阻塞、併發並行執行緒非同步並行
- 併發-0-同步/非同步/阻塞/非阻塞/程式/執行緒非同步執行緒
- Java併發(11)- 有關執行緒池的10個問題Java執行緒
- 最常見的15個Java多執行緒,併發面試問題Java執行緒面試
- JAVA併發之阻塞佇列淺析Java佇列