bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

SQL中出現(xiàn)latch:cachebufferschains報錯怎么解決

這篇文章主要介紹了SQL中出現(xiàn)latch:cache buffers chains報錯怎么解決的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇SQL中出現(xiàn)latch:cache buffers chains報錯怎么解決文章都會有所收獲,下面我們一起來看看吧。

目前創(chuàng)新互聯(lián)建站已為超過千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站運(yùn)營、企業(yè)網(wǎng)站設(shè)計、朝陽網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

1.產(chǎn)生原理

當(dāng)一個數(shù)據(jù)塊讀入到sga中時,該塊的塊頭(buffer header)會放置在一個hash bucket的鏈表(hash chain)中。該內(nèi)存結(jié)構(gòu)由一系列cache buffers chains子latch保護(hù)(又名hash latch或者cbc latch)。對Buffer cache中的塊,要select或者update、insert,delete等,都得先獲得cache buffers chains子latch,以保證對chain的排他訪問。若在過程中發(fā)生爭用,就會等待latch:cache buffers chains事件。

2.產(chǎn)生原因:

(1). 低效率的SQL語句(主要體現(xiàn)在邏輯讀過高) 在某些環(huán)境中,應(yīng)用程序打開執(zhí)行相同的低效率SQL語句的多個并發(fā)會話,這些SQL語句都設(shè)法得到相同的數(shù)據(jù)集,每次執(zhí)行都帶有高 BUFFER_GETS(邏輯讀取)的SQL語句是主要的原因。相反,較小的邏輯讀意味著較少的latch get操作,從而減少鎖存器爭用并改善性能。注意v$sql中BUFFER_GETS/EXECUTIONS大的語句。

(2).Hot block 當(dāng)多個會話重復(fù)訪問一個或多個由同一個子cache buffers chains鎖存器保護(hù)的塊時,熱塊就會產(chǎn)生。當(dāng)多個會話爭用cache buffers chains子鎖存器時,就會出現(xiàn)這個等待事件。有時就算調(diào)優(yōu)了SQL,但多個會話同時執(zhí)行此SQL,那怕只是掃描特定少數(shù)塊,也是也會出現(xiàn)HOT BLOCK的。

3.解決方法

(1).優(yōu)化SQL,如優(yōu)化nested loop join,如果有可能使用hash join代替nested loop join。

(2).可以利用對熱塊索引進(jìn)行hash分區(qū),或者使用hash簇的方式減緩熱塊現(xiàn)象。

(3).調(diào)整表的pctfree值,將數(shù)據(jù)盡可能的分布到多個塊中,但相同的查詢要掃更多塊,有負(fù)面作用。

(4).并行查詢是直接讀數(shù)據(jù)文件,不經(jīng)過SGA,即direct path read,所以就不存在鎖存器爭用的情況了。但其一般是為了大量數(shù)據(jù)讀取而使用的,不作為一般的解決方案。

(5).等問題自己消失。有時當(dāng)出現(xiàn)latch爭用時,故障時刻確實沒有較好的方式解決,找到病因才是關(guān)鍵。

4.查找熱點快對象

是從當(dāng)前等待latch:cache buffers chains事件的會話出發(fā)。通過v$session_wait視圖,獲得P1RAW即子鎖存器的地址。通過重復(fù)觀察v$session_wait視圖,發(fā)現(xiàn)某個子鎖存器地址較多地出現(xiàn),那么該子鎖存器管轄的chain可能有熱塊。

select p1,p1raw from v$session_wait where event='latch: cache buffers chains';

所以v$session的p1raw與x$bh的laddr,以及v$latch_children的addr是同樣的東西,都是子鎖存器的地址。大概思路是,通過子鎖存器的熱度來找到所管轄的對象,以及對象的熱度。

通過子鎖存器地址,即v$latch_children的addr字段,來獲取這些子鎖存器所管理的對象的文件號塊號與熱度。 注意到x$bh字典表中的tch字段表示的就是block的touch count,一般來說這個值越高那么這個塊就越熱,我們稱這樣的塊就叫做熱點塊。

  1. SELECT hladdr,

  2.          obj,

  3.          (SELECT object_name

  4.             FROM dba_objects

  5.            WHERE (data_object_id IS NULL AND object_id = x.obj)

  6.                  OR data_object_id = x.obj AND ROWNUM = 1)

  7.             AS object_name,

  8.          dbarfil,

  9.          dbablk,

  10.          tch

  11.     FROM x$bh x

  12.    WHERE hladdr IN ('00000000DA253C08', '00000000DA380310')

  13. ORDER BY tch DESC;


根據(jù)FILE#,dbablk來找出對應(yīng)對象。 

  1. select * from dba_extents where file_id=10 and 36643122 between block_id and block_id + blocks - 1;

  1. select * from dba_extents where file_id=10 and 36643122 between block_id and block_id + blocks - 1;

關(guān)于“SQL中出現(xiàn)latch:cache buffers chains報錯怎么解決”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“SQL中出現(xiàn)latch:cache buffers chains報錯怎么解決”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)頁名稱:SQL中出現(xiàn)latch:cachebufferschains報錯怎么解決
瀏覽路徑:http://vcdvsql.cn/article8/pejhop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站App開發(fā)App設(shè)計小程序開發(fā)網(wǎng)站導(dǎo)航定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司