真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么解決Oracle沒有索引導致的DPR

這篇文章主要講解了“怎么解決Oracle沒有索引導致的DPR”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么解決Oracle沒有索引導致的DPR”吧!

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序設(shè)計、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了通化免費建站歡迎大家使用!

直接看TOP 5 EVENTS,這是數(shù)據(jù)庫問題診斷的最快捷徑。

怎么解決Oracle沒有索引導致的DPR

先看占DB TIME達63.33%的direct path read事件。等待次數(shù)78586次,等待總時間3833s(約64分鐘),而elapsed time只有20分鐘。因此我們需要弄清楚是什么動作導致這么高的direct path read。

那什么是direct path read呢?一般來說,數(shù)據(jù)塊BLOCK(即ORACLE的最小存儲單元)總是先由后臺服務(wù)器進程緩沖至buffer cache,而后才被服務(wù)器進程獲取。但對于一些大表,將其緩沖至buffer cache勢必會將buffer cache中的許多其它對象擠出,即ageing out。為了避免這一情況,產(chǎn)生了direct path read,即不需要緩沖到緩存區(qū),而是直接由服務(wù)器進程從磁盤獲取。ORACLE通過一些參數(shù)控制在何種情況下采取direct path read。

既然direct path read很高,那就直接去查看對于哪些對象的direct path read高。通過查看segment by direct physical reads,可以獲得這一信息:

怎么解決Oracle沒有索引導致的DPR

顯而易見,direct physical reads是由于訪問tbcm_catalogfile引起的。因為physical reads= physical reads cache + physical reads direct,因此,除了查看segment by direct physical reads,也有必要查看一下segment by physical reads 的情況:

怎么解決Oracle沒有索引導致的DPR

Physical reads最多的仍然是表tbcm_catalogfile?,F(xiàn)在我們知道了physical reads主要發(fā)生在哪個對象上,但仍然不知道發(fā)生在哪個業(yè)務(wù)上(即哪個SQL邏輯上)。即然Physical reads是等待最多,自然地,我們需要去查看Physical reads最多的SQL語句:

怎么解決Oracle沒有索引導致的DPR

根據(jù)SQL_ID查看第一條SQL語句,其文本為:

SELECT F_ID, F_OBJECTID, F_FILELOCATION, f_filesrclocation, F_ISONSERVER, F_DATASIZE, F_PACKAGEPATH, F_SERVERID, F_ISMAINFILE, F_FILEPROPERTY, F_DIRTYPE FROM TBCM_CATALOGFILE where F_OBJECTID=:"SYS_B_0" and F_PACKAGEPATH=:"SYS_B_1" order by F_OBJECTID

果然與表tbcm_catalogfile有關(guān),接下來,我們查看該表的相關(guān)信息。得知,該表有4,000,000多條記錄,F(xiàn)_OBJECTID字段幾乎是唯一的,然而表上沒有任何索引。由于沒有索引,有執(zhí)行上述SQL時,ORACLE只有選擇全表掃描的方式,而對于如此大的一張表,恰好符合了DIRECT PATH READ的條件,因此執(zhí)行計劃選擇使用DIRECT PATH READ的方式來獲取數(shù)據(jù)。如果是單個進程,事實上已經(jīng)很糟了。多個進程是,同于是direct path read,沒有將block緩沖至緩存區(qū),所以每個進程都得通過direct path read獲取自己想要的數(shù)據(jù)。情況因此變得更糟。

解決辦法:在tbcm_catalogfile表的F_OBJECTID,F_PACKAGEPATH字段上創(chuàng)建組合索引即可。

感謝各位的閱讀,以上就是“怎么解決Oracle沒有索引導致的DPR”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對怎么解決Oracle沒有索引導致的DPR這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!


分享標題:怎么解決Oracle沒有索引導致的DPR
標題URL:http://weahome.cn/article/gcicoi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部