熱點塊競爭與解決
熱點塊競爭與解決
熱點塊主要是latch競爭,大量進城等待latch free競爭,我們可以從V$SESSION_WAIT檢視中查詢得到:
SID SEQ# EVENT
---------- ---------- -----------------------------------------------
4 14378 latch free
43 1854 latch free
176 977 latch free
187 4393 latch free
111 8715 latch free
209 48534 latch free
如果需要具體確定熱點物件,可以從V$LATCH_CHILDREN中查詢具體的子LATCH資訊,可以通過以下SQL查詢
SELECT *
FROM (SELECT addr,
child#,
gets,
misses,
sleeps,
immediate_gets igets,
immediate_misses imiss,
spin_gets sgets
FROM v$latch_children
WHERE NAME = 'cache buffers chains'
ORDER BY sleeps DESC)
WHERE ROWNUM < 11;
X$BH中還存在另外一個關鍵欄位HLADDR,即hash chain latch address,這個欄位可以和v$latch_children.addr進行關聯,這樣就可以把具體的LATCH競爭和資料塊關聯起來,在結合dba_extents檢視,就可以找到具體的熱點競爭物件,找到具體熱點競爭物件之後,可以結合v$sqlarea或者v$sqltext,找到頻繁操作這些物件的SQL,然後對其進行優化,即可緩解或解決熱點塊競爭的問題。
以下SQL可以獲取當前持有最熱點資料庫的LATCH及BUFFER資訊:
SELECT b.addr,
a.ts#,
a.dbarfil,
a.dbablk,
a.tch,
b.gets,
b.misses,
b.sleeps
FROM (SELECT *
FROM (SELECT addr, ts#, file#, dbarfil, dbablk, tch, hladdr
FROM x$bh
ORDER BY tch DESC)
WHERE ROWNUM < 11) a,
(SELECT addr, gets, misses, sleeps
FROM v$latch_children
WHERE NAME = 'cache buffers chains') b
WHERE a.hladdr = b.addr;
利用前面提到的SQL可以找到這些熱點BUFFER的物件資訊:
SELECT distinct e.owner, e.segment_name, e.segment_type
FROM dba_extents e,
(SELECT *
FROM (SELECT addr, ts#, file#, dbarfil, dbablk, tch
FROM x$bh
ORDER BY tch DESC)
WHERE ROWNUM < 11) b
WHERE e.relative_fno = b.dbarfil
AND e.block_id <= b.dbablk
AND e.block_id + e.blocks > b.dbablk;
結合V$sqltext或v$sqlarea,可以找到操作這些物件的相關SQL,繼續查詢:
SELECT /*+ rule */
hash_value, sql_text
FROM v$sqltext
WHERE (hash_value, address) IN
(SELECT a.hash_value, a.address
FROM v$sqltext a,
(SELECT DISTINCT a.owner, a.segment_name, a.segment_type
FROM dba_extents a,
(SELECT dbarfil, dbablk
FROM (SELECT dbarfil, dbablk
FROM x$bh
ORDER BY tch DESC)
WHERE ROWNUM < 11) b
WHERE a.relative_fno = b.dbarfil
AND a.block_id <= b.dbablk
AND a.block_id + a.blocks > b.dbablk) b
WHERE a.sql_text LIKE '%' || b.segment_name || '%'
AND b.segment_type = 'TABLE')
ORDER BY hash_value, address, piece;
找到這些SQL之後,剩下的問題就簡單了,可以通過優化SQL減少資料的訪問,避免或優化某些容易引起爭用的操作(如CONNECT BY等操作)來減少熱點塊競爭。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25964700/viewspace-703147/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 熱點塊競爭和解決--cache buffers chainsAI
- itl競爭模擬與解決系列(二)
- 資料緩衝區熱鏈和熱塊爭用及解決方法
- 比特幣學習筆記——————9、競爭幣、競爭塊鏈和應用程式比特幣筆記
- 解決多執行緒競爭條件——臨界區執行緒
- 企業競爭情報蒐集與分析
- 谷歌與ChatGPT展開直接競爭谷歌ChatGPT
- 用深度學習解決競爭性編碼問題 | DeepMind深度學習
- 查詢熱點快和熱點塊的操作
- 遊戲全球化背景下,中小團隊如何參與最熱賽道競爭遊戲
- 2019機器學習框架之爭:與Tensorflow競爭白熱化,進擊的PyTorch贏在哪裡?機器學習框架PyTorch
- IORegistryIterator競爭條件漏洞分析與利用
- 優質投資的特徵與競爭力特徵
- 多執行緒下解決資源競爭的7種方法執行緒
- 【恩墨學院】超實用運維經驗:TEMP表空間不足、熱塊競爭經典案例運維
- 出海老兵FunPlus求變,中核遊戲競爭白熱化遊戲
- 阿里遊戲可以「與騰訊直接競爭」了嗎?阿里遊戲
- 社交遊戲玩法設計—競爭與對抗遊戲
- 京東健康首份財報有點絢,行業競爭有點慘行業
- go 協程操作map導致的資料競爭及解決方法Go
- 熱門微信升官小遊戲現狀分析 哪些模式更具競爭力遊戲模式
- Mike Darga:闡述遊戲與其它休閒活動競爭需知的3個要點遊戲
- 競爭性需求分析
- 深度分析ORACLE熱點塊問題Oracle
- netty Recycler(三) 多執行緒回收物件時競爭機制的解決Netty執行緒物件
- 深度分析ORACLE熱點塊問題(轉)Oracle
- “買量GS”最全盤點,存量市場的核心競爭力
- 邦芒攻略:提升職場核心競爭力的7點建議
- 網路公司拼“外賣” ;即時配送成競爭焦點
- 谷歌與蘋果的競爭擴充套件到汽車領域谷歌蘋果套件
- 優化Shared Pool Latch與Library Cache Latch競爭優化
- 競爭程式設計與實際程式設計的不同程式設計
- 微軟在與蘋果的長期競爭中,再次領先微軟蘋果
- 中國區塊鏈年度報告發布,騰訊競爭力排名第一!區塊鏈
- 淺談併發的資料競爭(可見性)與競態條件(原子性)
- 智慧運營:銀行競爭的下一個決勝之地
- 人工智慧會是雲端計算白熱化競爭的終結者嗎?人工智慧
- 人工智慧時代的競爭人工智慧