国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

性能優化之oracle SQL執行計劃異常診斷一例

IT那活兒 / 2015人閱讀
性能優化之oracle SQL執行計劃異常診斷一例

親愛滴伙伴們,本萎磚家又來了。這次咱說說SQL加了并行hint,但并行卻跑不起來的小案例。這事兒的起因是應用側一哥們兒反饋一個存儲過程平時只要1個小時就可以跑完,這次跑了4個多小時還望不到頭兒,找過來需要友情協助。


干運維的都是苦命孩子,大家能互相幫襯的就互相幫襯點兒,你說要是找我借個十塊八塊錢的話,我也幫不上忙。這手到擒來的活兒,還是義不容辭的擼起袖子,開始排查問題原因。


根據這哥們兒提供過來的sql文本,在庫里找到了對應的會話及正在運行的SQL。查看session相關屬性信息,確定與跟之前運行的時間相差很大(看來這大兄弟也是實在人,硬是多扛了3個多小時才喊痛)。看到這個差別第一反應是執行計劃的相關原因導致,核實執行計劃后,果然和懷疑的一樣,執行計劃一直在變。


既然執行計劃總是在變,那咱就看看這2個執行計劃的區別在哪兒?

執行計劃顯示SQL是一個insert....select....語句,SQL中有/*+APPEND ENABLE_PARALLEL_DMLPARALLEL("a",8)+*/開啟PDML并行的hint,其中低效的執行計劃顯示DML并行無效(PDMLdisabled because object is not decorated with parallelclause)。


我們繼續分析執行計劃發現高效執行計劃在預插入數據的目標表insert及其索引維護動作均開啟了并行,但低效執行計劃沒有。


問題點出現了:

  • 為啥ENABLE_PARALLEL_DMLhint有時候起作用,有時候就失效了呢?

  • PDMLdisabled because object is not decorated with parallel clause?

  • 為啥會報對象沒有用parallel子句修飾?難道是hint寫錯了?


順著這個思路繼續查看sql書寫規范,果然有發現,別名上多了雙引


去掉雙引號測試一切回歸正常:


其實,這里有一個更穩妥的老司機的做法可以防止hint寫錯影響并行的開啟,使用會話級別打開并行:

  • altersession force parallel query parallel 16;

  • altersession force parallel dml parallel 16;

該方式就算hint寫錯了也沒關系,照樣會走并行。


總結:

從這個例子我們可以看到一個小小的雙引號竟然可以導致parallel hint間隙性失效,真是應了那句老話兒,一粒老鼠屎壞了一鍋湯。所以說工作中規范很重要。好了,本次分享到此結束,咱下回分享再見。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/130215.html

相關文章

  • 開源|性能優化利器:數據庫審核平臺Themis的選型與實踐

    摘要:正是存在問題,促使我們考慮引入數據庫審核平臺。的確,與很多互聯網公司相比,數據庫數十套的估摸并不是太大但與互聯網類公司不同,類似宜信這類金融類公司對數據庫的依賴性更大,大量的應用是重數據庫類的,且其使用復雜程度也遠比互聯網類的復雜。 作者:韓鋒 出處:DBAplus社群分享 Themis開源地址:https://github.com/CreditEaseDBA 拓展閱讀:宜信開源|數...

    wenhai.he 評論0 收藏0
  • DBASK問答集萃(2)

    摘要:新晉技術專家下面是墨天輪部分新晉的技術專家。大家可以點擊往期閱讀墨天輪技術專家邀請函了解詳情,申請成為我們的技術專家,加入專家團隊,與我們一起創建一個開放互助的數據庫技術社區。新關聯公眾號墨天輪是一個開放互助的數據庫技術社區。 引言 近期我們在DBASK小程序增加了數據庫 MongoDB、Redis、 Elasticsearch、DB2、Weblogic 等新的的專題欄目和一些新的技術...

    liuchengxu 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<